Skip to content

Releases: ComPWA/ampform

AmpForm 0.11.4

11 Oct 10:12
7ab1e3f
Compare
Choose a tag to compare

Release 0.11.4

See all documentation for this version here.

🐛 Bug fixes

Support pickling with SymPy v1.9 (#164)

📝 Documentation

Embedded Zenodo metadata (#165)

See ComPWA/compwa.github.io#64

AmpForm 0.11.3

27 Sep 08:00
198bc06
Compare
Choose a tag to compare

Release 0.11.3

See all documentation for this version here.

🐛 Bug fixes

import OrderedDict from collections instead of typing-extensions (#162)

Previously, OrderedDict was imported from typing-extensions. This seems to work better for typing than collections.OrderedDict, but is only available in typing-extensions==3.10.*, see e.g.
https://github.com/ComPWA/tensorwaves/pull/327/checks?check_run_id=3717304158

Setting typing-extensions>=3.10 as a lower limit however causes problems downstream for packages that use TensorFlow, see e.g. ComPWA/tensorwaves#317

For now, it's therefore better to use collections.OrderedDict instead, so that there is no need to restrict typing-extensions.

📝 Documentation

Added Zenodo DOI badge (#160)

Closes ComPWA/compwa.github.io#55

Zenodo DOI

AmpForm 0.11.2

24 Sep 13:41
ff17feb
Compare
Choose a tag to compare

Release 0.11.2

Release for first Zenodo DOI
Zenodo DOI

See all documentation for this version here.

💡 New features

Set CoupledWidth name through constructor (#141)

CoupledWidth._name can now be set through the constructor, just like other classes that derive from UnevaluatedExpression.

Use multiple plot symbols in prepare_sliders (#145)

Sometimes, you want to plot an expression with respect to several variables (like an XY-plot). This commit facilitates that.

Ordered components and parameter defaults in HelicityModel (#146)

HelicityModel.components and HelicityModel.parameter_defaults are now ordered alphabetically, so that you can also get them by index. (Not entirely straight-forward, but at least now it's guaranteed that the items are orderd.)

Warning is emitted when resonance is not available in HelicityModel (#148)

🐛 Bug fixes

Correctly set custom phsp_factor CoupledWidth (#140)

CoupledWidth class did not set its phsp_factor attribute if it was specified in the constructor.

Determine phase space factor subscript from s (#144)

Just like with CoupledWidth, the (optional) subscript in the latex rendering for this function should come from the decaying parameter (input argument s), not the decay products (input argument m_a).

Removed mdit-py-plugins version limit (#147)

Dependency conflicts have been resolved by myst-nb.

📝 Documentation

Removed 0-below-threshold note for rel BW (#143 and 371572e)

The docstring for relativistic_breit_wigner_with_ff still included a note about setting the damping factor to zero below threshold in case of zero angular momentum.

Embeded GPLv3+ license file (#154)

Some platforms like Zenodo and conda-forge require the license file to be packaged.

Extended package description in README and removed tick-boxed (#155)

Removed the tick-boxes, as they do not render correctly on PyPI

Added package description for PyPI (#158)

Closes ComPWA/compwa.github.io#61

🔨 Internal maintenance

Simplify doit implementation (#142)

The implement_doit_method decorator would re-construct the class from its own arguments. It's better to directly call the evaluate() method though, because the class is already constructed once the method is called.

Removed mdit-py-plugins version limit (#147)

Dependency conflicts have been resolved by myst-nb.

AmpForm 0.11.1

30 Aug 12:29
f4b740b
Compare
Choose a tag to compare

Release 0.11.1

See all documentation for this version here.

🐛 Bug fixes

Classes deriving from UnevaluatedExpression are now pickled correctly (#139)

A pickled HelicityModel could not be unpickled again, because the UnevaluatedExpression._name attribute was stored as a positional (i.e. required) argument in __getnewargs__.

AmpForm 0.11.0

30 Aug 09:28
29651c6
Compare
Choose a tag to compare

Release 0.11.0

Two major new changes:

  • Added a module for symbolic K-matrix and P-vector expressions
  • Dynamics functions are now classes, so that they can be more easily identified in the expression tree

See all documentation for this version here.

💡 New features

Added a module for symbolic, non-relativistic K-matrix computations for an arbitrary number of channels (#117, #120, #121, #122, #127, #128, and #129)

Implemented TR-005 and TR-009. Notable difference: this implementation provides caching of the matrix multiplication so that one can more easily switch between a different number of channels.

Implemented (non-)relativistic P-vector (#123, #127, #131, and #132)

Implementation of TR-010.

Closes #118

Added symbol_to_arg and arg_to_symbol attribute to symplot.SliderKwargs (#124)

Added a symbol_to_arg and arg_to_symbol property to symplot.SliderKwargs, as it is often needed in the visualization applets.

Maximum angular momentum in BlattWeisskopfSquared can now be limited (#134)

Specifically for speeding up the widgets, see e.g. ad65784

⚠️ Interface

Dynamics functions are now wrapped in Expr classes (#115, #119, and #138)

Inspired by ComPWA/compwa.github.io#37 and ComPWA/compwa.github.io#43, which required to re-define coupled width and other dynamics in terms of a class to make them render nicely, all expression nodes of dynamics functions are formulated in terms of sympy.Expr classes. This has been made possible with #114.

Note some major interface changes:

  • coupled_width -> CoupledWidth
  • breakup_momentum_squared -> BreakupMomentumSquared
  • phase_space_factor -> PhaseSpaceFactor
    (for this, the PhaseSpaceFactor had to be renamed to PhaseSpaceFactorProtocol)
  • etc...

The breakup_momentum function has been removed.

Also added a (hidden) instance attribute UnevaluatedExpr._name, so that it can be used in the LaTeX rendering. In addition, the LaTeX rendering of of classes like PhaseSpaceFactor is affected by the name of their arguments (if they have any). This comes in handy in the relativistic K-matrix, when we want to distinguish between different CoupledWidths and PhaseSpaceFactors in the LaTeX rendering.

Renamed decorator sub-module to "sympy" (#116)

The ampform.dynamics.decorator sub-module does more than just providing decorators. It generally contains functions that help building sympy.Expr classes (and instances), so it is better moved and renamed to a more general place: ampform.sympy.

📝 Documentation

Added comparison visualization of P-vector vs K-matrix (#125)

record

Imported and improved K-matrix theory section from compwa-org (#126 and #130)

Imported and bundled the theory sections from TR-005, TR-009, and TR-010. Many more notes were added and some problems have been pointed out as well. Sphinx preview here.

Switched to compwa-org for the develop page (#137)

AmpForm 0.10.5

06 Aug 18:24
b0b3102
Compare
Choose a tag to compare

Release 0.10.5

See all documentation for this version here.

Final release before v0.11.0.

🐛 Bug fixes

Implemented deep argument in doit instead of the new method (#114)

Fixes a small bug that was introduced by the new function create_expression, which was introduced in #113. That function allowed handling the deep argument in doit, so that expressions containing a BlattWeisskopfSquared can be called with doit(deep=False). The fix was faulty though; this PR is the correct implementation.

Slider descriptions now use HTML math mode (cafddea)

Math mode in ipywidgets doesn't render well when using LaTeX dollar signs for math mode. HTML math mode \(...\) works well both in Jupyter notebook and in HTML.

AmpForm 0.10.4

03 Aug 13:53
da323a7
Compare
Choose a tag to compare

Release 0.10.4

See all documentation for this version here.

💡 New features

Improved symplot.SliderKwargs class (#109)

Some minor changes that improve usage of symplot, but don't affect interface. Required for ComPWA/compwa.github.io#37.

  • Set step size (not number of steps) if n_steps is float in set_ranges
  • Un-hide _sliders and _arg_to_symbol attributes of SliderKwargs
Implemented symplot.substitute_indexed_symbols() function (#111)

Implementation of [TR-008] Indexed free symbols

Implemented symplot.partial_doit() function (#112)

Helper function for ComPWA/compwa.github.io#37

⚠️ Interface

Remove angular momentum projection from formulate_clebsch_gordan_coefficients (#102)

See #100 (comment)

🐛 Bug fixes

DOT is now wrapped in a figure (#106)

Fixes #105

Bit of a clumsy solution, using the figure directive, but I don't see another way around it...

Remove verify_signature function (#110)

This check makes the framework less flexible and the additional code is not worth the 'friendly' exception. It is required for ComPWA/compwa.github.io#37, where a special class PhaseSpaceFactor is inserted into coupled_width.

UnevaluatedExpr can now be instantiated with a doit argument (#113)

Previously, there something like BlattWeisskopfSquared(...).doit(deep=False) would crash. This fixes that behavior.

See also ComPWA/compwa.github.io#37

📝 Documentation

Extended docstrings of helicity and kinematics modules (#100)

Added several examples that explain the implementations in the helicity and kinematics modules.

A preview of the API can be viewed here:
https://ampform--100.org.readthedocs.build/en/100/api/ampform.html

Widen cell output where needed (#103)

Widen cells where their input and/or output is so wide that a horizontal scrollbar appears. This can be done with the full-width tag:
https://sphinx-book-theme.readthedocs.io/en/latest/layout.html#full-width-content

For instance:
image

versus (v0.10.3):
image

Documentation pages are wider now (#104)

Ignored panel css to increase main content width. Otherwise the main content ends up being weirdly small. See:

Old:
image

New:
image

Many thanks to @ianhi!

🖱️ Developer Experience

Switched to pre-commit.ci where possible (#107)

See ComPWA/qrules#87

AmpForm 0.10.3

16 Jul 16:08
56cb749
Compare
Choose a tag to compare

Release 0.10.3

See all documentation for this version here.

💡 New features

Define breakup_momentum function (#97)

It makes more sense to use breakup_momentum as an argument to phsp_factor in relativistic_breit_wigner_with_ff etc than breakup_momentum_squard.

⚠️ Interface

Removed sympy.Piecewise from rrelativistic_breit_wigner_with_ff (#98)

The function relativistic_breit_wigner_with_ff now produces

instead of

The latter was mistakenly introduced because of a wrong parameterization in phase_space_factor_analytic (this one is valid only for equal masses).

📝 Documentation

Colorized extracted amplitudes in formalism notebook (0f913d6)
Added links to ComPWA organization (a6dd74d)

🖱️ Developer Experience

Allow 📖 Physics issue label (56cb749)

AmpForm 0.10.2

14 Jul 12:09
5e04a05
Compare
Choose a tag to compare

Release 0.10.2

See all documentation for this version here.

📝 Documentation

Added helicity-vs-canonical basis comparison (#95)

Added a notebook that describes the difference between the helicity basis and canonical basis in the helicity formalism.

🐛 Bug fixes

Required numpy version is limited to v1.20 (#91)

Since NumPy v1.21 it is required to explicitly define __array_ufunc__, both for static typing as for running the code. With the current set-up, __array_ufunc__ is too problematic. Better solution would be #92.

AmpForm 0.10.1

24 Jun 11:40
b4f6b33
Compare
Choose a tag to compare

Release 0.10.1

See all documentation for this version here.

💡 New features

Implemented HelicityModel.sum_components (#90)

Import tensorwaves.physics.add_components.

Note that this allows removing the tensorwaves.physics module.