quadax

Numerical quadrature with JAX

https://github.com/f0uriest/quadax

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.9%) to scientific vocabulary

Keywords from Contributors

stellarator interactive packaging network-simulation hacking autograding observability embedded optim standardization
Last synced: 6 months ago · JSON representation ·

Repository

Numerical quadrature with JAX

Basic Info
  • Host: GitHub
  • Owner: f0uriest
  • License: mit
  • Language: Python
  • Default Branch: main
  • Size: 348 KB
Statistics
  • Stars: 68
  • Watchers: 4
  • Forks: 4
  • Open Issues: 8
  • Releases: 10
Created over 2 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog Contributing License Citation

README.rst

########
quadax
########
|License| |DOI| |Issues| |Pypi|

|Docs| |UnitTests| |Codecov|

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

- ``vmap``-able, ``jit``-able, differentiable.
- Scalar or vector valued integrands.
- Finite or infinite domains with discontinuities or singularities within the domain of integration.
- Globally adaptive Gauss-Kronrod and Clenshaw-Curtis 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 and Simpsons methods.

Coming soon:

- Custom JVP/VJP rules (currently AD works by differentiating the loop which isn't the most efficient.)
- N-D quadrature (cubature)
- QMC methods
- Integration with weight functions
- Sparse grids (maybe, need to play with data structures and JAX)

Installation
============

quadax is installable with `pip`:

.. code-block:: console

    pip install quadax



Usage
=====

.. code-block:: python

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

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

    epsabs = epsrel = 1e-5 # by default jax uses 32 bit, higher accuracy requires going to 64 bit
    a, b = 0, 1
    y, info = quadgk(fun, [a, b], epsabs=epsabs, epsrel=epsrel)
    assert info.err < max(epsabs, epsrel*abs(y))
    np.testing.assert_allclose(y, 1/4, rtol=epsrel, atol=epsabs)


For full details of various options see the `API documentation `__


.. |License| image:: https://img.shields.io/github/license/f0uriest/quadax?color=blue&logo=open-source-initiative&logoColor=white
    :target: https://github.com/f0uriest/quadax/blob/master/LICENSE
    :alt: License

.. |DOI| image:: https://zenodo.org/badge/709132830.svg
    :target: https://zenodo.org/doi/10.5281/zenodo.10035983
    :alt: DOI

.. |Docs| image:: https://img.shields.io/readthedocs/quadax?logo=Read-the-Docs
    :target: https://quadax.readthedocs.io/en/latest/?badge=latest
    :alt: Documentation

.. |UnitTests| image:: https://github.com/f0uriest/quadax/actions/workflows/unittest.yml/badge.svg
    :target: https://github.com/f0uriest/quadax/actions/workflows/unittest.yml
    :alt: UnitTests

.. |Codecov| image:: https://codecov.io/github/f0uriest/quadax/graph/badge.svg?token=MB11I7WE3I
    :target: https://codecov.io/github/f0uriest/quadax
    :alt: Coverage

.. |Issues| image:: https://img.shields.io/github/issues/f0uriest/quadax
    :target: https://github.com/f0uriest/quadax/issues
    :alt: GitHub issues

.. |Pypi| image:: https://img.shields.io/pypi/v/quadax
    :target: https://pypi.org/project/quadax/
    :alt: Pypi

Owner

  • Name: Rory Conlin
  • Login: f0uriest
  • Kind: user

PhD student, Princeton Plasma Physics Laboratory. Machine learning, dynamical systems, plasma stability and control.

Citation (CITATION.cff)

cff-version: 1.2.0
title: quadax
message: >-
  If you use this software, please cite it using the
  metadata from this file. To cite a specific version of quadax,
  please cite the correct version from Zenodo at
  https://zenodo.org/doi/10.5281/zenodo.10035983
type: software
authors:
  - given-names: Rory
    family-names: Conlin
    email: wconlin@princeton.edu
    affiliation: Princeton University
    orcid: 'https://orcid.org/0000-0001-8366-2111'
identifiers:
  - type: doi
    value: 10.5281/zenodo.10035983
    description: 'Master DOI for quadax, points to latest release.'
  - type: url
    value: 'https://github.com/f0uriest/quadax'
    description: 'Github repository for quadax'
repository-code: 'https://github.com/f0uriest/quadax'
url: 'https://quadax.readthedocs.io'
repository-artifact: 'https://pypi.org/project/quadax/'
license: MIT

GitHub Events

Total
  • Create event: 53
  • Issues event: 19
  • Release event: 4
  • Watch event: 22
  • Delete event: 44
  • Issue comment event: 54
  • Push event: 69
  • Pull request review event: 32
  • Pull request event: 100
  • Fork event: 3
Last Year
  • Create event: 53
  • Issues event: 19
  • Release event: 4
  • Watch event: 22
  • Delete event: 44
  • Issue comment event: 54
  • Push event: 69
  • Pull request review event: 32
  • Pull request event: 100
  • Fork event: 3

Committers

Last synced: 10 months ago

All Time
  • Total Commits: 91
  • Total Committers: 3
  • Avg Commits per committer: 30.333
  • Development Distribution Score (DDS): 0.385
Past Year
  • Commits: 65
  • Committers: 3
  • Avg Commits per committer: 21.667
  • Development Distribution Score (DDS): 0.492
Top Committers
Name Email Commits
Rory Conlin r****n@g****m 56
dependabot[bot] 4****] 33
Matthew R. Becker b****r 2

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 16
  • Total pull requests: 96
  • Average time to close issues: 28 days
  • Average time to close pull requests: 3 days
  • Total issue authors: 13
  • Total pull request authors: 4
  • Average comments per issue: 1.56
  • Average comments per pull request: 0.94
  • Merged pull requests: 86
  • Bot issues: 0
  • Bot pull requests: 67
Past Year
  • Issues: 9
  • Pull requests: 90
  • Average time to close issues: 20 days
  • Average time to close pull requests: 1 day
  • Issue authors: 8
  • Pull request authors: 3
  • Average comments per issue: 1.33
  • Average comments per pull request: 0.92
  • Merged pull requests: 81
  • Bot issues: 0
  • Bot pull requests: 67
Top Authors
Issue Authors
  • quattro (2)
  • javier-garcia-tilburg (2)
  • twhentschel (2)
  • nwood99-ctrl (1)
  • wcxve (1)
  • pokedthefrog (1)
  • ben-cassese (1)
  • maxgalli (1)
  • JGameCreation (1)
  • unalmis (1)
  • nmearl (1)
  • pierreguilmin (1)
  • e-eight (1)
Pull Request Authors
  • dependabot[bot] (70)
  • f0uriest (35)
  • beckermr (2)
  • twhentschel (2)
Top Labels
Issue Labels
question (1)
Pull Request Labels
dependencies (70) python (57) github_actions (5)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 14,827 last-month
  • Total dependent packages: 2
  • Total dependent repositories: 0
  • Total versions: 11
  • Total maintainers: 1
pypi.org: quadax

Numerical quadrature with JAX

  • Versions: 11
  • Dependent Packages: 2
  • Dependent Repositories: 0
  • Downloads: 14,827 Last month
Rankings
Dependent packages count: 9.3%
Average: 38.7%
Dependent repos count: 68.2%
Maintainers (1)
Last synced: 6 months ago

Dependencies

.github/workflows/black.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • reviewdog/action-suggester v1 composite
.github/workflows/jax_tests.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
.github/workflows/linting.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • reviewdog/action-flake8 v3 composite
.github/workflows/release.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • pypa/gh-action-pypi-publish 27b31702a0e7fc50959f5ad993c78deac1bdfc29 composite
.github/workflows/unittest.yml actions
  • Wandalen/wretry.action v1.0.36 composite
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • actions/upload-artifact v3 composite
pyproject.toml pypi
requirements-dev.txt pypi
  • black ==22.10.0 development
  • build * development
  • flake8 >=5.0.0,<=6.0.0 development
  • flake8-docstrings >=1.0.0,<=2.0.0 development
  • flake8-eradicate >=1.0.0,<=2.0.0 development
  • flake8-isort >=5.0.0,<=6.0.0 development
  • pre-commit * development
  • pytest >=5.0.0 development
  • pytest-benchmark * development
  • pytest-cov >=2.6.0 development
  • pytest-monitor * development
  • sphinx >3.0.0 development
  • sphinx-github-style >=1.0,<=1.1 development
  • sphinx-rtd-theme >=1.0,<2.0 development
  • sphinx_copybutton * development
requirements.txt pypi
  • jax >=0.3.2,<=0.4.14
  • numpy >=1.20.0,<1.25.0
  • scipy >=1.5.0,<1.11.0
setup.py pypi
.github/workflows/scheduled.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
  • actions/upload-artifact v3 composite