elisa.util.integrate#

Numerical integration.

make_integral_factory(param_id: ParamID, interval: JAXArray, method: AdaptQuadMethod = 'quadgk', kwargs: dict[str, Any] | None = None) Callable[[ModelCompiledFn], ModelCompiledFn][source]#

Get integral factory over the interval.

Parameters:
param_idstr

Parameter ID.

interval: array_like

The interval, a 2-element sequence.

method{‘quadgk’, ‘quadcc’, ‘quadts’, ‘romberg’, ‘rombergts’}, optional

Numerical integration method used to integrate over the parameter. Available options are:

  • 'quadgk': global adaptive quadrature by Gauss-Konrod rule

  • 'quadcc': global adaptive quadrature by Clenshaw-Curtis rule

  • 'quadts': global adaptive quadrature by trapz tanh-sinh rule

  • 'romberg': Romberg integration

  • 'rombergts': Romberg integration by tanh-sinh (a.k.a. double exponential) transformation

The default is 'quadgk'.

kwargsdict, optional

Extra kwargs passed to integration methods. See [1] for details.

Returns:
integral_factorycallable()

Given a model function, the integral factory outputs a new model function with the interval parameter being integrated out.

References