Skip to main content

Numerical quadrature with JAX

Project description

License DOI GitHub issues Pypi

Documentation UnitTests Coverage

quadax is a library for numerical quadrature and integration using JAX.

  • Globally adaptive Gauss-Konrod quadrature for smooth integrands (similar to scipy.integrate.quad)

  • Adaptive tanh-sinh quadrature for singular or near singular integrands.

  • Quadrature from sampled values using trapezoidal, simpsons, and higher order rules.

Coming soon:

  • N-D quadrature (cubature) via iterated 1-D rules, sparse grids, and QMC methods

  • Integration with weight functions.

Installation

quadax is installable with pip:

pip install quadax

Usage

import jax.numpy as jnp
import numpy as np
from quadax import quadgk

f = lambda t: t * jnp.log(1 + t)

y, err = quadgk(fun, 0, 1, epsabs=1e-14, epsrel=1e-14)

np.testing.assert_allclose(y, 1/4, rtol=1e-14, atol=1e-14)

For full details of various options see the API documentation

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page