Metadata-Version: 2.1
Name: tensorwaves
Version: 0.4.6
Summary: Python fitter package for multiple computational back-ends
Home-page: UNKNOWN
Author: Common Partial Wave Analysis
Author-email: compwa-admin@ep1.rub.de
Maintainer-email: compwa-admin@ep1.rub.de
License: GPLv3 or later
Project-URL: Tracker, https://github.com/ComPWA/tensorwaves/issues
Project-URL: Changelog, https://github.com/ComPWA/tensorflow/releases
Project-URL: Documentation, https://tensorwaves.rtfd.io
Project-URL: Source, https://github.com/ComPWA/tensorwaves
Keywords: HEP,PWA,amplitude analysis,partial wave analysis,particle physics,physics,tensorflow
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Physics
Classifier: Typing :: Typed
Requires-Python: <3.10,>=3.7
Description-Content-Type: text/markdown
Requires-Dist: attrs (>=20.1.0)
Requires-Dist: iminuit (>=2.0)
Requires-Dist: numpy
Requires-Dist: PyYAML (>=5.1)
Requires-Dist: sympy (>=1.9)
Requires-Dist: tqdm (>=4.24.0)
Provides-Extra: all
Requires-Dist: jax ; extra == 'all'
Requires-Dist: jaxlib ; extra == 'all'
Requires-Dist: numba ; extra == 'all'
Requires-Dist: tensorflow (<3,>=2.4) ; extra == 'all'
Requires-Dist: phasespace (<2,>=1.2.0) ; extra == 'all'
Requires-Dist: tensorflow (<2.7) ; extra == 'all'
Requires-Dist: ampform (>=0.12.0) ; extra == 'all'
Requires-Dist: scipy (>=1) ; extra == 'all'
Requires-Dist: graphviz ; extra == 'all'
Provides-Extra: dev
Requires-Dist: jax ; extra == 'dev'
Requires-Dist: jaxlib ; extra == 'dev'
Requires-Dist: numba ; extra == 'dev'
Requires-Dist: tensorflow (<3,>=2.4) ; extra == 'dev'
Requires-Dist: phasespace (<2,>=1.2.0) ; extra == 'dev'
Requires-Dist: tensorflow (<2.7) ; extra == 'dev'
Requires-Dist: ampform (>=0.12.0) ; extra == 'dev'
Requires-Dist: scipy (>=1) ; extra == 'dev'
Requires-Dist: graphviz ; extra == 'dev'
Requires-Dist: ipympl ; extra == 'dev'
Requires-Dist: jupyter ; extra == 'dev'
Requires-Dist: matplotlib ; extra == 'dev'
Requires-Dist: myst-nb (>=0.14) ; extra == 'dev'
Requires-Dist: nbclient (>=0.5.5) ; extra == 'dev'
Requires-Dist: pandas ; extra == 'dev'
Requires-Dist: Sphinx (>=3) ; extra == 'dev'
Requires-Dist: sphinx-book-theme ; extra == 'dev'
Requires-Dist: sphinx-codeautolink[ipython] ; extra == 'dev'
Requires-Dist: sphinx-comments ; extra == 'dev'
Requires-Dist: sphinx-copybutton ; extra == 'dev'
Requires-Dist: sphinx-panels ; extra == 'dev'
Requires-Dist: sphinx-thebe ; extra == 'dev'
Requires-Dist: sphinx-togglebutton ; extra == 'dev'
Requires-Dist: sphobjinv ; extra == 'dev'
Requires-Dist: black ; extra == 'dev'
Requires-Dist: isort ; extra == 'dev'
Requires-Dist: flake8 (>=4) ; extra == 'dev'
Requires-Dist: flake8-blind-except ; extra == 'dev'
Requires-Dist: flake8-bugbear ; extra == 'dev'
Requires-Dist: flake8-builtins ; extra == 'dev'
Requires-Dist: flake8-comprehensions ; extra == 'dev'
Requires-Dist: flake8-future-annotations ; extra == 'dev'
Requires-Dist: flake8-pytest-style ; extra == 'dev'
Requires-Dist: flake8-rst-docstrings ; extra == 'dev'
Requires-Dist: flake8-use-fstring ; extra == 'dev'
Requires-Dist: pep8-naming ; extra == 'dev'
Requires-Dist: ipython ; extra == 'dev'
Requires-Dist: pytest ; extra == 'dev'
Requires-Dist: pytest-mock (>=3.3.0) ; extra == 'dev'
Requires-Dist: mypy (>=0.570) ; extra == 'dev'
Requires-Dist: types-docutils ; extra == 'dev'
Requires-Dist: types-pkg-resources ; extra == 'dev'
Requires-Dist: types-PyYAML ; extra == 'dev'
Requires-Dist: types-requests ; extra == 'dev'
Requires-Dist: types-setuptools ; extra == 'dev'
Requires-Dist: pydocstyle ; extra == 'dev'
Requires-Dist: pylint (>=2.5) ; extra == 'dev'
Requires-Dist: pre-commit (>=1.4.0) ; extra == 'dev'
Requires-Dist: ampform (>=0.13) ; extra == 'dev'
Requires-Dist: coverage (!=6.3) ; extra == 'dev'
Requires-Dist: nbmake ; extra == 'dev'
Requires-Dist: pytest-benchmark ; extra == 'dev'
Requires-Dist: pytest-cov ; extra == 'dev'
Requires-Dist: pytest-xdist ; extra == 'dev'
Requires-Dist: aquirdturtle-collapsible-headings ; extra == 'dev'
Requires-Dist: jupyterlab ; extra == 'dev'
Requires-Dist: jupyterlab-code-formatter ; extra == 'dev'
Requires-Dist: jupyterlab-myst ; extra == 'dev'
Requires-Dist: sphinx-autobuild ; extra == 'dev'
Requires-Dist: tox (>=1.9) ; extra == 'dev'
Requires-Dist: Sphinx (<4.4) ; (python_version < "3.8.0") and extra == 'dev'
Requires-Dist: markdown (<3.3.6) ; (python_version < "3.8.0") and extra == 'dev'
Requires-Dist: flake8-type-ignore ; (python_version >= "3.8.0") and extra == 'dev'
Provides-Extra: doc
Requires-Dist: jax ; extra == 'doc'
Requires-Dist: jaxlib ; extra == 'doc'
Requires-Dist: numba ; extra == 'doc'
Requires-Dist: tensorflow (<3,>=2.4) ; extra == 'doc'
Requires-Dist: phasespace (<2,>=1.2.0) ; extra == 'doc'
Requires-Dist: tensorflow (<2.7) ; extra == 'doc'
Requires-Dist: ampform (>=0.12.0) ; extra == 'doc'
Requires-Dist: scipy (>=1) ; extra == 'doc'
Requires-Dist: graphviz ; extra == 'doc'
Requires-Dist: ipympl ; extra == 'doc'
Requires-Dist: jupyter ; extra == 'doc'
Requires-Dist: matplotlib ; extra == 'doc'
Requires-Dist: myst-nb (>=0.14) ; extra == 'doc'
Requires-Dist: nbclient (>=0.5.5) ; extra == 'doc'
Requires-Dist: pandas ; extra == 'doc'
Requires-Dist: Sphinx (>=3) ; extra == 'doc'
Requires-Dist: sphinx-book-theme ; extra == 'doc'
Requires-Dist: sphinx-codeautolink[ipython] ; extra == 'doc'
Requires-Dist: sphinx-comments ; extra == 'doc'
Requires-Dist: sphinx-copybutton ; extra == 'doc'
Requires-Dist: sphinx-panels ; extra == 'doc'
Requires-Dist: sphinx-thebe ; extra == 'doc'
Requires-Dist: sphinx-togglebutton ; extra == 'doc'
Requires-Dist: sphobjinv ; extra == 'doc'
Requires-Dist: Sphinx (<4.4) ; (python_version < "3.8.0") and extra == 'doc'
Provides-Extra: flake8
Requires-Dist: flake8 (>=4) ; extra == 'flake8'
Requires-Dist: flake8-blind-except ; extra == 'flake8'
Requires-Dist: flake8-bugbear ; extra == 'flake8'
Requires-Dist: flake8-builtins ; extra == 'flake8'
Requires-Dist: flake8-comprehensions ; extra == 'flake8'
Requires-Dist: flake8-future-annotations ; extra == 'flake8'
Requires-Dist: flake8-pytest-style ; extra == 'flake8'
Requires-Dist: flake8-rst-docstrings ; extra == 'flake8'
Requires-Dist: flake8-use-fstring ; extra == 'flake8'
Requires-Dist: pep8-naming ; extra == 'flake8'
Requires-Dist: markdown (<3.3.6) ; (python_version < "3.8.0") and extra == 'flake8'
Requires-Dist: flake8-type-ignore ; (python_version >= "3.8.0") and extra == 'flake8'
Provides-Extra: format
Requires-Dist: black ; extra == 'format'
Requires-Dist: isort ; extra == 'format'
Provides-Extra: jax
Requires-Dist: jax ; extra == 'jax'
Requires-Dist: jaxlib ; extra == 'jax'
Provides-Extra: lint
Requires-Dist: flake8 (>=4) ; extra == 'lint'
Requires-Dist: flake8-blind-except ; extra == 'lint'
Requires-Dist: flake8-bugbear ; extra == 'lint'
Requires-Dist: flake8-builtins ; extra == 'lint'
Requires-Dist: flake8-comprehensions ; extra == 'lint'
Requires-Dist: flake8-future-annotations ; extra == 'lint'
Requires-Dist: flake8-pytest-style ; extra == 'lint'
Requires-Dist: flake8-rst-docstrings ; extra == 'lint'
Requires-Dist: flake8-use-fstring ; extra == 'lint'
Requires-Dist: pep8-naming ; extra == 'lint'
Requires-Dist: jax ; extra == 'lint'
Requires-Dist: jaxlib ; extra == 'lint'
Requires-Dist: tensorflow (<3,>=2.4) ; extra == 'lint'
Requires-Dist: phasespace (<2,>=1.2.0) ; extra == 'lint'
Requires-Dist: tensorflow (<2.7) ; extra == 'lint'
Requires-Dist: ampform (>=0.12.0) ; extra == 'lint'
Requires-Dist: ipython ; extra == 'lint'
Requires-Dist: pytest ; extra == 'lint'
Requires-Dist: pytest-mock (>=3.3.0) ; extra == 'lint'
Requires-Dist: mypy (>=0.570) ; extra == 'lint'
Requires-Dist: types-docutils ; extra == 'lint'
Requires-Dist: types-pkg-resources ; extra == 'lint'
Requires-Dist: types-PyYAML ; extra == 'lint'
Requires-Dist: types-requests ; extra == 'lint'
Requires-Dist: types-setuptools ; extra == 'lint'
Requires-Dist: pydocstyle ; extra == 'lint'
Requires-Dist: pylint (>=2.5) ; extra == 'lint'
Requires-Dist: markdown (<3.3.6) ; (python_version < "3.8.0") and extra == 'lint'
Requires-Dist: flake8-type-ignore ; (python_version >= "3.8.0") and extra == 'lint'
Provides-Extra: mypy
Requires-Dist: jax ; extra == 'mypy'
Requires-Dist: jaxlib ; extra == 'mypy'
Requires-Dist: tensorflow (<3,>=2.4) ; extra == 'mypy'
Requires-Dist: phasespace (<2,>=1.2.0) ; extra == 'mypy'
Requires-Dist: tensorflow (<2.7) ; extra == 'mypy'
Requires-Dist: ampform (>=0.12.0) ; extra == 'mypy'
Requires-Dist: ipython ; extra == 'mypy'
Requires-Dist: pytest ; extra == 'mypy'
Requires-Dist: pytest-mock (>=3.3.0) ; extra == 'mypy'
Requires-Dist: mypy (>=0.570) ; extra == 'mypy'
Requires-Dist: types-docutils ; extra == 'mypy'
Requires-Dist: types-pkg-resources ; extra == 'mypy'
Requires-Dist: types-PyYAML ; extra == 'mypy'
Requires-Dist: types-requests ; extra == 'mypy'
Requires-Dist: types-setuptools ; extra == 'mypy'
Provides-Extra: numba
Requires-Dist: numba ; extra == 'numba'
Provides-Extra: phasespace
Requires-Dist: tensorflow (<3,>=2.4) ; extra == 'phasespace'
Requires-Dist: phasespace (<2,>=1.2.0) ; extra == 'phasespace'
Requires-Dist: tensorflow (<2.7) ; extra == 'phasespace'
Provides-Extra: phsp
Requires-Dist: tensorflow (<3,>=2.4) ; extra == 'phsp'
Requires-Dist: phasespace (<2,>=1.2.0) ; extra == 'phsp'
Requires-Dist: tensorflow (<2.7) ; extra == 'phsp'
Provides-Extra: pwa
Requires-Dist: tensorflow (<3,>=2.4) ; extra == 'pwa'
Requires-Dist: phasespace (<2,>=1.2.0) ; extra == 'pwa'
Requires-Dist: tensorflow (<2.7) ; extra == 'pwa'
Requires-Dist: ampform (>=0.12.0) ; extra == 'pwa'
Provides-Extra: scipy
Requires-Dist: scipy (>=1) ; extra == 'scipy'
Provides-Extra: sty
Requires-Dist: black ; extra == 'sty'
Requires-Dist: isort ; extra == 'sty'
Requires-Dist: flake8 (>=4) ; extra == 'sty'
Requires-Dist: flake8-blind-except ; extra == 'sty'
Requires-Dist: flake8-bugbear ; extra == 'sty'
Requires-Dist: flake8-builtins ; extra == 'sty'
Requires-Dist: flake8-comprehensions ; extra == 'sty'
Requires-Dist: flake8-future-annotations ; extra == 'sty'
Requires-Dist: flake8-pytest-style ; extra == 'sty'
Requires-Dist: flake8-rst-docstrings ; extra == 'sty'
Requires-Dist: flake8-use-fstring ; extra == 'sty'
Requires-Dist: pep8-naming ; extra == 'sty'
Requires-Dist: jax ; extra == 'sty'
Requires-Dist: jaxlib ; extra == 'sty'
Requires-Dist: tensorflow (<3,>=2.4) ; extra == 'sty'
Requires-Dist: phasespace (<2,>=1.2.0) ; extra == 'sty'
Requires-Dist: tensorflow (<2.7) ; extra == 'sty'
Requires-Dist: ampform (>=0.12.0) ; extra == 'sty'
Requires-Dist: ipython ; extra == 'sty'
Requires-Dist: pytest ; extra == 'sty'
Requires-Dist: pytest-mock (>=3.3.0) ; extra == 'sty'
Requires-Dist: mypy (>=0.570) ; extra == 'sty'
Requires-Dist: types-docutils ; extra == 'sty'
Requires-Dist: types-pkg-resources ; extra == 'sty'
Requires-Dist: types-PyYAML ; extra == 'sty'
Requires-Dist: types-requests ; extra == 'sty'
Requires-Dist: types-setuptools ; extra == 'sty'
Requires-Dist: pydocstyle ; extra == 'sty'
Requires-Dist: pylint (>=2.5) ; extra == 'sty'
Requires-Dist: pre-commit (>=1.4.0) ; extra == 'sty'
Requires-Dist: markdown (<3.3.6) ; (python_version < "3.8.0") and extra == 'sty'
Requires-Dist: flake8-type-ignore ; (python_version >= "3.8.0") and extra == 'sty'
Provides-Extra: tensorflow
Requires-Dist: tensorflow (<3,>=2.4) ; extra == 'tensorflow'
Provides-Extra: test
Requires-Dist: ipython ; extra == 'test'
Requires-Dist: pytest ; extra == 'test'
Requires-Dist: pytest-mock (>=3.3.0) ; extra == 'test'
Requires-Dist: ampform (>=0.13) ; extra == 'test'
Requires-Dist: coverage (!=6.3) ; extra == 'test'
Requires-Dist: nbmake ; extra == 'test'
Requires-Dist: pytest-benchmark ; extra == 'test'
Requires-Dist: pytest-cov ; extra == 'test'
Requires-Dist: pytest-xdist ; extra == 'test'
Provides-Extra: test-types
Requires-Dist: ipython ; extra == 'test-types'
Requires-Dist: pytest ; extra == 'test-types'
Requires-Dist: pytest-mock (>=3.3.0) ; extra == 'test-types'
Provides-Extra: tf
Requires-Dist: tensorflow (<3,>=2.4) ; extra == 'tf'
Provides-Extra: viz
Requires-Dist: graphviz ; extra == 'viz'

# TensorWaves

[![10.5281/zenodo.5526650](https://zenodo.org/badge/doi/10.5281/zenodo.5526650.svg)](https://doi.org/10.5281/zenodo.5526650)
[![GPLv3+ license](https://img.shields.io/badge/License-GPLv3+-blue.svg)](https://www.gnu.org/licenses/gpl-3.0-standalone.html)

[![PyPI package](https://badge.fury.io/py/tensorwaves.svg)](https://pypi.org/project/tensorwaves)
[![Conda package](https://anaconda.org/conda-forge/tensorwaves/badges/version.svg)](https://anaconda.org/conda-forge/tensorwaves)
[![Supported Python versions](https://img.shields.io/pypi/pyversions/tensorwaves)](https://pypi.org/project/tensorwaves)

[![Binder](https://static.mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/ComPWA/tensorwaves/stable?filepath=docs/usage)
[![Google Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/ComPWA/tensorwaves/blob/stable)
[![Open in Visual Studio Code](https://img.shields.io/badge/vscode-open-blue?logo=visualstudiocode)](https://open.vscode.dev/ComPWA/tensorwaves)
[![GitPod](https://img.shields.io/badge/gitpod-open-blue?logo=gitpod)](https://gitpod.io/#https://github.com/ComPWA/tensorwaves)

[![Documentation build status](https://readthedocs.org/projects/tensorwaves/badge/?version=latest)](https://tensorwaves.readthedocs.io)
[![pre-commit.ci status](https://results.pre-commit.ci/badge/github/ComPWA/tensorwaves/main.svg)](https://results.pre-commit.ci/latest/github/ComPWA/tensorwaves/main)
[![pytest](https://github.com/ComPWA/tensorwaves/workflows/pytest/badge.svg)](https://github.com/ComPWA/tensorwaves/actions?query=branch%3Amain+workflow%3Apytest)
[![Checked with mypy](http://www.mypy-lang.org/static/mypy_badge.svg)](https://mypy.readthedocs.io)
[![Test coverage](https://codecov.io/gh/ComPWA/tensorwaves/branch/main/graph/badge.svg)](https://codecov.io/gh/ComPWA/tensorwaves)
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/db8f89e5588041d8a995968262c224ef)](https://www.codacy.com/gh/ComPWA/tensorwaves)
[![Spelling checked](https://img.shields.io/badge/cspell-checked-brightgreen.svg)](https://github.com/streetsidesoftware/cspell/tree/master/packages/cspell)
[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![Imports: isort](https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336)](https://pycqa.github.io/isort)

TensorWaves is a fitter package that optimizes mathematical models to data
samples. The models can be any _symbolic_ mathematical expression that is then
converted to any computational backend. In addition, TensorWaves provides
functionality to generate toy Monte Carlo data samples. The package is
developed in parallel with [AmpForm](https://github.com/ComPWA/ampform), which
implements physics models, but its 'lambdifying' mechanisms can in principle be
used independently.

All documentation can be found on
[tensorwaves.rtfd.io](https://tensorwaves.readthedocs.io).

For an overview of **upcoming releases and planned functionality**, see
[here](https://github.com/ComPWA/tensorwaves/milestones?direction=asc&sort=title&state=open).

## Contribute

See [`CONTRIBUTING.md`](./CONTRIBUTING.md)


