tensorwaves

Python fitter package for multiple computational back-ends

APACHE-2.0 License

Downloads
1K
Stars
10
Committers
6

Bot releases are visible (Hide)

tensorwaves - TensorWaves 0.2.8

Published by release-drafter[bot] over 3 years ago

See all documentation for this version here.

πŸ’‘ New features

Fixes the tqdm progress bar so that it gives a time estimate when calling generate_phsp and generate_data.

πŸ› Bug fixes

Implementation of TR-001. Requires https://github.com/ComPWA/ampform/pull/75 and AmpForm v0.9.2 (upcoming).

πŸ–±οΈ Developer Experience

tensorwaves - TensorWaves 0.2.7

Published by release-drafter[bot] over 3 years ago

See all documentation for this version here.

πŸ’‘ New features

Larger SymPy expressions that take a long time to lambdify can now be lambdified faster (order of 10-100x) with split_expression(), optimized_lambdify(), and the max_complexity argument.
https://tensorwaves.rtfd.io/en/0.2.7/usage/faster-lambdify.html

tensorwaves - TensorWaves 0.2.6

Published by release-drafter[bot] over 3 years ago

See all documentation for this version here.

πŸ’‘ New features

If the amplitude model is complicated, it can take over an hour to lambdify it to a Model. So it's annoying to have to do that twice if you use the same backend for data generation and fitting. This PR allows reusing a LambdifiedFunction for fitting.

Simple fix: just casts ScalarSequence back into a numpy array so that a lambdified Function can handle it.

Many thanks to @mayou36 for releasing phasespace v1.3!

tensorwaves - TensorWaves 0.2.5

Published by release-drafter[bot] over 3 years ago

Added support for analytic continuation. See all documentation for this version here.

πŸ’‘ New features

Adds support for analytic continuation in particular.

πŸ› Bug fixes

Lambdifying to with modules=numpy.__dict__ does not work with conditionals (sympy.Piecewise). If using numpy.dict, Piecewise is lambdified to if-else (which doesn't worky with numpy arrays), while it should convert to numpy.select.

πŸ–±οΈ Developer Experience

tensorwaves - TensorWaves 0.2.4

Published by release-drafter[bot] over 3 years ago

See all documentation for this version here.
(Maintenance release: mainly improves mobile version of the website.)

⚠️ Interface

πŸ”¨ Internal maintenance

In addition, extract pytest configuration to pytest.ini and define testpaths there. Since b9b72ed, it is become impossible to run tests through VSCode. Defining testpaths fixes this. In addition, it removes the last 'non-tox' section from the tox.ini file (see 7eb3866)

πŸ–±οΈ Developer Experience

With the release of pip-tools v6.1.0, pip-compile now correctly handles extras_require. This allows for a big clean-up of the set-up introduced by https://github.com/ComPWA/expertsystem/pull/412.

Advantages:

  • Easier for the user and developer! Just run: pip install -e .[dev] to get started developing, pip install -e .[dev] -U to try out upgrades, and pip install -c .constraints/py3.8.txt -e .[dev] -U in case you exactly want to reproduce the dependencies for some commit.
  • The upgrade jobs become significantly faster: bit over 1min versus almost 3min
  • All requirements, their version domains, and the dependencies between each of the requirement sections can be nicely overseen and maintained within setup.cfg
  • Git diffs for pull requests that affect dependencies become easier to oversee
  • Less complexity and fewer changes per commit

Makes it easier to understand function signatures.

Added references to requirement pinning

Also cleans up the .pylintrc config file

Better to only keep tox job definitions in the tox.ini file. Note that config files are only extracted if their respective tools supports a config file name that starts with a dot

tensorwaves - TensorWaves 0.2.3

Published by release-drafter[bot] over 3 years ago

See all documentation for this version here.

πŸ”¨ Internal maintenance

tensorwaves - TensorWaves 0.2.2

Published by release-drafter[bot] over 3 years ago

See all documentation for this version here.

πŸ’‘ New features

Closes #100

⚠️ Interface

Wrapped the optimize dict output in a FitResult class. It's a rather simple attr data container that wraps what was previously in a dict form. Optimizer-specific info has been put under a specifics attribute.

πŸ› Bug fixes

The csv.DictReader crashes when there are complex values (and using QUOTE_NONNUMERIC). This was not spotted, because the tests only work with float parameters. Now one additional (complex) parameter is set free and the bug has been fixed. To speed up the tests, the UnbinnedNLL fixture uses Jax now.

πŸ”¨ Internal maintenance

πŸ“ Documentation

See https://github.com/ComPWA/expertsystem/pull/535

πŸ–±οΈ Developer Experience

tensorwaves - TensorWaves 0.2.1

Published by release-drafter[bot] over 3 years ago

See all documentation for this version here.

πŸ’‘ New features

  • Added ScipyMinimizer adapter as an interface to scipy.optimize.minimize (#231, #235, and #241)
  • Added more initialize stage and end stages to the Callback interface (#234)
  • New faΓ§ade functions in the physics module help extracting intensity components from the amplitude model (#244)
  • Added support for lambdifying to tensorflow (#245)
    (The resulting function is not efficient yet. This may have to wait until TF v2.5 is out or other improvements to the lambdifying are implemented, like #100.)

⚠️ Interface

  • New abstracts for the Callback interface: .on_optimize_start() and .on_optimize_end() (#234)
  • There's a new top module: physics (#244)

πŸ”¨ Internal maintenance

  • No dependency on pandas anymore: the CSVSummary callback uses csv.DictWriter instead (#239)
  • Upgraded to expertsystem v0.7.1 (#248)

πŸ“ Documentation

  • New example notebook: generate data and optimize for an arbitrary model (#232)
  • Added a SciPy example fit to usage notebook (#235)
  • Improved the optimize process plots (#242)
  • Figures are now rendered as SVG (#243)

πŸ–±οΈ Developer Experience

  • Added collapsible_headings for Jupyter Lab (#233)
  • Packages listed under extras_require are now also pinned through the developer dependencies (#240)

Contributors since 0.2.0

@redeboer and @spflueger

tensorwaves - TensorWaves 0.2.0

Published by release-drafter[bot] over 3 years ago

See all documentation for this version here.

⚠️ Interface

Several breaking changes!
All physics (amplitude, dynamics, and kinematics modules) has been moved to the expertsystem, where the amplitude model is now formulated in terms of SymPy (see v0.7.0). TensorWaves is now more abstract: the core has become a template Model class that can be 'lambdified' into a Function with different computational backends. The esimator and data modules are still there, but changed slightly because of the intermediate Model layer.

Since the responsibilities of tensorwaves have changed quite a bit and much code has been removed, the module structure has been changed drastically as well. The example workflow notebooks therefore changed as well.

The new workflow is described here.

Contributors since 0.1.5

@redeboer and @spflueger

tensorwaves - TensorWaves 0.1.5

Published by release-drafter[bot] over 3 years ago

Release 0.1.5

See all documentation for this version here.

This is the final release before the switch to SymPy. See #222 and expertsystem v0.7.0a0.

πŸ› Bug fixes

  • Progress bar works better now in Jupyter notebook because of tqdm.autonotebook (#223)

πŸ”¨ Internal maintenance

πŸ“ Documentation

  • Visualization of modules with pydeps has been removed (#202)
  • Top of each sub-module API page has an import statement so that it is easier to see where the sub-module is located (#217)

πŸ–±οΈ Developer Experience

See also changes listed in expertsystem v0.6.10

  • Certain GitHub Actions can now be started manually (#208)
  • CI runs on draft PR again (#210)
  • Preference is now given over intersphinx syntax links (#215)
  • Added infrastructure for generating custom stubs to the typing folder (#216)
  • pre-commit hooks are now automatically upgraded through GitHub Actions(#220)
  • Notebooks can now be run and rendered as HTML through tox -e doclive as well (#225)

Contributors since 0.1.4

@redeboer

tensorwaves - TensorWaves 0.1.4

Published by release-drafter[bot] almost 4 years ago

See all documentation for this version here.

πŸ’‘ New features

  • Upgraded from expertsystem 0.6.5 to expertsystem 0.6.8 (#199), see release notes 0.6.6, 0.6.7 and 0.6.8

⚠️ Interface

  • The Estimator now requires a phase-space sample for normalization and the constructor of the IntensityBuilder does not require one (#192)

πŸ› Bug fixes

  • Correctly import form factor in relativistic Breit-Wigner (#187)
  • Added mass*width factor to relativistic Breit-Wigner without form factor (#189)
  • Correctly throw invalid L error (#188)

πŸ–±οΈ Developer Experience

  • Issue templates have been improved (#190)
  • Added new issue label for interface changes (#193)
  • Added tests for the shape of a kinematics dataset (#194)
  • Removed the Python example workflow script (#197)

Contributors since 0.1.3

@redeboer and @spflueger

tensorwaves - TensorWaves 0.1.3

Published by release-drafter[bot] almost 4 years ago

See all documentation for this version here.

πŸ’‘ New features

  • It's now possible to generate deterministic data samples. By default, generated samples are undeterministic (#168)
  • Fit results can be exported through Callbacks (see tensorwaves.optimizer.callbacks). This also allows the user to break off a fit and pick it up anytime from the dumped fit result. Callbacks also offer different ways of logging and monitoring the optimization process (#159)

πŸ”¨ Interface changes

  • Dynamics have to be configured through the expertsystem ― tensorwaves does not provide default dynamics anymore (#180)

πŸ“ Documentation

  • The develop/contribute page has been outsourced to the PWA pages (#175)

πŸ–±οΈ Internals

  • markdownlint is run as pre-commit hook, not only as a separate npm package (#178)
  • Angular distribution are now tested with a test structure similar to that of pycompwa (#182)
  • CUDA GPU devices has been disable on GitHub Actions (#183)
  • Developer requirements are pinned all the way to indirect dependencies and for each Python version. The corresponding requirements*.txt files are updated automatically for each PR and through a cron job (#185)

Contributors since 0.1.2

@redeboer, @sebastianJaeger and @spflueger

tensorwaves - TensorWaves 0.1.2

Published by release-drafter[bot] almost 4 years ago

See all documentation for this version here.

πŸ› Bug fixes

  • Upgrade to expertsystem 0.6.3 to fix problems with canonical formalism (#150)
  • Upload wheel as well as source ditribution to PyPI (#149). This enables running tensorwaves on Google Colab again.

πŸ“ Documentation

  • Fix links to tensorwaves in documentation (#145). Was previously pointing to the expertsystem.
  • Upgrade to Sphinx Book Theme 0.39 (#145)

πŸ–±οΈ Internals

  • Limit to Python < 3.9 in Conda environment definition (#145)

Contributors since 0.1.1

@redeboer and @spflueger

tensorwaves - TensorWaves 0.1.1

Published by release-drafter[bot] almost 4 years ago

See all documentation for this version here.

πŸ› Bug fixes

  • Prevent multiple entries of the same invariant mass (#123)
  • Switched to tf.random.Generator instead of tf.random.uniform (#141)

πŸ“ Documentation

  • Documentation is now built with MyST-NB and related packages (#132)
  • Example notebooks are hosted on Binder and Google Colaboratory (#132)
  • Added links to related projects in the sidebar (#136)
  • Added plots of the fit results (#142)

πŸ–±οΈ Internals

  • Upgrade to TF2.3 for Python 3.8 support (#128)
  • Upgraded to expertsystem 0.6.2 (#134)
  • Migrated from Travis to GitHub Actions (#124)
  • Release notes are drafted automatically from PR titles since last release (#129)
  • Remove conda-forge from channels (#133)

Contributors since 0.1.0-alpha0

@Leongrim and @redeboer

tensorwaves - TensorWaves 0.1.0-alpha0

Published by spflueger about 4 years ago

See all documentation for this version here.

New features

Interface changes

  • Now the decay dynamics are by default RelativisticBreitWigner. This change is triggered by the expertsystem 0.2.0 update, which does not specify decay dynamics anymore. One exception is the top node in a decay, which is still set exported as NonDynamic by the expertsystem.
tensorwaves - Release candidate

Published by redeboer over 4 years ago

  • Helicity formalism and canonical formalism with TensorFlow as backend
  • Up to fit procedure, no data or visualization model yet