Releases: ComPWA/ampform
AmpForm 0.11.4
AmpForm 0.11.3
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
AmpForm 0.11.2
Release 0.11.2
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
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
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, thePhaseSpaceFactor
had to be renamed toPhaseSpaceFactorProtocol
)- 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 CoupledWidth
s and PhaseSpaceFactor
s 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)
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
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
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
isfloat
inset_ranges
- Un-hide
_sliders
and_arg_to_symbol
attributes ofSliderKwargs
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
versus (v0.10.3):
Documentation pages are wider now (#104)
Ignored panel css to increase main content width. Otherwise the main content ends up being weirdly small. See:
- https://github.com/executablebooks/sphinx-book-theme/blob/547cc95674623345124d9bbea9e15e5b5fa34d0e/docs/conf.py#L62
- https://sphinx-panels.readthedocs.io/en/latest/index.html?highlight=panels_add_bootstrap_css#sphinx-configuration
Many thanks to @ianhi!
🖱️ Developer Experience
Switched to pre-commit.ci where possible (#107)
See ComPWA/qrules#87
AmpForm 0.10.3
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
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
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.