verify_transform_derivative¶
- lsst.multiprofit.verify_transform_derivative(transform: TransformD, value_transformed: float, derivative: float | None = None, abs_max: float = 1000000.0, dx_ratios: Iterable[float] | None = None, **kwargs: Any) None ¶
Verify that the derivative of a transform class is correct.
- Parameters:
- transform
The transform to verify.
- value_transformed
The un-transformed value at which to verify the transform.
- derivative
The nominal derivative at value_transformed. Must equal transform.derivative(value_transformed).
- abs_max
The x value to skip verification if np.abs(derivative) > x.
- dx_ratios
Iterable of signed ratios to set dx for finite differencing, where dx = value*ratio (untransformed).
- **kwargs
Keyword arguments to pass to np.isclose when comparing derivatives to finite differences.
- Raises:
- RuntimeError
Raised if the transform derivative doesn’t match finite differences within the specified tolerances.
Notes
derivative should only be specified if it has previously been computed for the exact value_transformed, to avoid re-computing it unnecessarily.
Default dx_ratios are [1e-4, 1e-6, 1e-8, 1e-10, 1e-12, 1e-14]. Verification will test all ratios until at least one passes.