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.