Releases: ComPWA/tensorwaves
TensorWaves 0.2.8
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
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
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
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
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, andpip 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
See all documentation for this version here.
🔨 Internal maintenance
- The
expertsystem
has been replaced byampform
andqrules
- The
master
branch has been renamed tomain
.
TensorWaves 0.2.2
See all documentation for this version here.
💡 New features
⚠️ 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
🖱️ Developer Experience
Added cspell, pyright, and ComPWA/meta pre-commit hooks (#256)
- No need to install Pyright and cSpell anymore (through
npm
), because they are now executed as apre-commit
hook. See ComPWA/mirrors-cspell and ComPWA/mirrors-pyright. - Replaced scripts under
.pre-commit-hooks
with hooks from the ComPWA/meta repository. Now thetox -e sty
job works again.
TensorWaves 0.2.1
See all documentation for this version here.
💡 New features
- Added
ScipyMinimizer
adapter as an interface toscipy.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: theCSVSummary
callback usescsv.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 0.2.0
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
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
- Upgraded to
expertsystem
v0.6.10 (#224) - Upgraded to
iminuit
v2.x (#213)
📝 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)