Skip to content

Releases: ComPWA/tensorwaves

TensorWaves 0.2.8

10 Jun 18:30
ad6d775
Compare
Choose a tag to compare

See all documentation for this version here.

💡 New features

A time estimate is now provided when generating data (#286)

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

🐛 Bug fixes

Analytic continuation can now be activated safely when using JAX as backend (#284)

Implementation of TR-001. Requires ComPWA/ampform#75 and AmpForm v0.9.2 (upcoming).

🖱️ Developer Experience

Milestone are automatically closed when a matching release is published (#282)
A new notebook show how to activate analytic continuation (#285)

TensorWaves 0.2.7

01 Jun 20:09
44fc055
Compare
Choose a tag to compare

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 0.2.6

28 May 15:23
743b05b
Compare
Choose a tag to compare

See all documentation for this version here.

💡 New features

Constructing an Estimator from a Function (#272)

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.

Data can now be generated with JAX as well (#271)

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

Python 3.9 and TensorFlow 2.5 are now supported (#275)

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

TensorWaves 0.2.5

10 May 12:23
66e24e0
Compare
Choose a tag to compare

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

💡 New features

Upgrade to AmpForm v0.9.x (#270)

Adds support for analytic continuation in particular.

🐛 Bug fixes

Lambdify to numpy, not numpy.__dict__ (f0cbcaa)

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

Run notebooks with pytest (982aa21)
Simplified usage examples to speed up CI (0737f49)

TensorWaves 0.2.4

02 May 20:49
f6feb1d
Compare
Choose a tag to compare

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

⚠️ Interface

Optional dependency section "extras" has been renamed to "all" (6ff7ecc)

🔨 Internal maintenance

Switch to first (non pre-)release of qrules and ampform (#265)

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

Move dependency definitions back back to setup.cfg (#264)

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 ComPWA/expertsystem#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
Add PR template + GitPod extensions (#266)
Annotations in API are abbreviated if they are links (#267)

Makes it easier to understand function signatures.

Doctests are now verified through pytest (b9b72ed)
Updated installation instructions (8f94021)

Added references to requirement pinning

Added more flake8 plugins and fixed identified issues (feefdfb)

Also cleans up the .pylintrc config file

Split all config files for dev tools (7eb3866)

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 0.2.3

07 Apr 15:50
bff8a03
Compare
Choose a tag to compare

See all documentation for this version here.

🔨 Internal maintenance

TensorWaves 0.2.2

01 Apr 11:48
f76663e
Compare
Choose a tag to compare

See all documentation for this version here.

💡 New features

Added the option to cache constant sub-expressions in SympyModels (#247 and #260)

Closes #100

⚠️ Interface

Optimize result is returned as a FitResult class (#254)

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

YAMLSummary callback correctly handles complex values (#252)
YAMLSummary now also dumps the final fit result at on_optimize_end, not only for each optimize step (#252)
Complex parameter values are now correctly loaded from CSV (#253)

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

Upgraded to expertsystem v0.7.1-2, which renders StateTransitionGraphs more nicely (#259)

📝 Documentation

Added install cells in Jupyter notebooks for Google Colab (#250 and #251)

See ComPWA/expertsystem#535

🖱️ Developer Experience

Added cspell, pyright, and ComPWA/meta pre-commit hooks (#256)

TensorWaves 0.2.1

24 Mar 18:14
9c38c96
Compare
Choose a tag to compare

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

📝 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 0.2.0

15 Mar 17:05
f9c955e
Compare
Choose a tag to compare

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 0.1.5

12 Mar 16:34
e521462
Compare
Choose a tag to compare

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