nlsq.precision.bound_inference.merge_bounds¶
- nlsq.precision.bound_inference.merge_bounds(inferred_bounds, user_bounds=None)[source]¶
Merge user-provided bounds with inferred bounds.
User-provided bounds take precedence. If user provides partial bounds (e.g., only lower or only for some parameters), the remaining bounds are filled from inferred bounds.
- Parameters:
- Returns:
lower_bounds (ndarray) – Merged lower bounds
upper_bounds (ndarray) – Merged upper bounds
- Return type:
Examples
>>> inferred = (np.array([0, 0, 0]), np.array([10, 5, 10])) >>> user = (np.array([1, -np.inf, 0]), np.array([5, np.inf, 10])) >>> merged = merge_bounds(inferred, user) >>> print(merged) (array([1., 0., 0.]), array([5., 5., 10.]))
Notes
If user provides -np.inf for lower bound, use inferred lower bound
If user provides np.inf for upper bound, use inferred upper bound
Scalar user bounds are broadcast to all parameters