nlsq.core.adapters¶
Protocol adapters for dependency injection in the NLSQ core module.
This subpackage provides adapter classes that implement the protocols defined
in nlsq.interfaces, enabling flexible dependency injection and loose coupling
between components.
Protocol adapters for core optimization algorithms.
This package provides adapter classes that wrap core optimization functionality behind protocol interfaces, enabling loose coupling and dependency injection.
The adapters implement protocols defined in nlsq.interfaces and provide a clean abstraction layer between high-level curve fitting APIs and low-level optimization algorithms.
- class nlsq.core.adapters.CurveFitAdapter(cache=None, stability_guard=None, diagnostics_config=None)[source]¶
Bases:
objectAdapter that provides curve fitting via protocol interface.
This adapter wraps the core curve_fit functionality and implements CurveFitProtocol, allowing it to be used interchangeably with other curve fitting implementations.
- Parameters:
cache (UnifiedCache | None) – Optional cache for JIT compilation and results.
stability_guard (NumericalStabilityGuard | None) – Optional numerical stability guard.
diagnostics_config (DiagnosticsConfig | None) – Optional diagnostics configuration.
Examples
>>> adapter = CurveFitAdapter() >>> popt, pcov = adapter.curve_fit(model, xdata, ydata, p0=[1.0, 0.1])
- __init__(cache=None, stability_guard=None, diagnostics_config=None)[source]¶
Initialize the adapter with optional dependencies.
- curve_fit(f, xdata, ydata, p0=None, sigma=None, bounds=None, **kwargs)[source]¶
Fit a function to data.
Delegates to the core curve_fit implementation while providing a clean protocol-based interface.
- Parameters:
f (Callable) – Model function
f(x, *params) -> y.xdata (np.ndarray) – Independent variable data.
ydata (np.ndarray) – Dependent variable data.
p0 (np.ndarray or None) – Initial parameter guess.
sigma (np.ndarray or None) – Uncertainty in ydata.
bounds (tuple or None) – (lower, upper) bounds for parameters.
**kwargs (Any) – Additional keyword arguments passed to curve_fit.
- Returns:
(popt, pcov) - optimal parameters and covariance matrix.
- Return type:
tuple[np.ndarray, np.ndarray]
- static with_global_optimization(global_config=None)[source]¶
Create an adapter configured for global optimization.
- Parameters:
global_config (GlobalOptimizationConfig | None) – Configuration for global optimization.
- Returns:
Adapter configured for global optimization.
- Return type:
Usage Example¶
from nlsq.core.adapters import CurveFitAdapter
from nlsq.interfaces import CurveFitProtocol
# Create adapter instance
adapter = CurveFitAdapter()
# Use as CurveFitProtocol implementation
result = adapter.fit(model, xdata, ydata, p0=initial_params)