All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.1.14 - 2024-12-06
- add intermediate
Model
and serialization updates - add perf commands to justfile
0.1.13 - 2024-12-05
- add evaluate_gradient functions where evaluate is available in python API
- add vector indexing and
Event.get_p4_sum
to python API - add
__sub__
,__rsub__
, and__neg__
implementations to PythonVector3
andVector4
- correct python method to get energy from 4-vector
- (python) write K-Matrix tests
- (python) write Zlm tests
- (python) write Ylm tests
- (python) write Breit-Wigner tests
- remove unused imports
- (breit_wigner) properly test BreitWigner gradient
- (python) write common amplitude tests
- (python) write amplitude submodule tests
- update common tests
- write python tests for variables
- raise minimum python version to 3.8 to allow for numpy v2 constraint
- we were so close
- I'll just write it myself, what could go wrong
- the alpine package is named
build-base
, notbuild-essential
- remove print statement in test
- add tests for Python data submodule
- switch back to clang and add build-essential
- switch from clang to gcc
- add python3-dev and pkgconf to weird linux builds
- add git and clang to the weird OS target builds
- misnamed wheels
- try globing it
- try using direct wheel path to install
- trying this again, maybe if I specify a local path it won't try to pull
laddu
from PyPI - use --no-index to try to force pip to install the local wheel
- update maturin.yml to run pytest
- (python) add tests for python vector API
- update ruff settings globally
0.1.12 - 2024-12-04
- add basic implementation to read directly from ROOT files
- (bench) updated benchmark to run over available parallelism
- correct parallelism to allow for proper codspeed benchmarking
- minor fixes for building without rayon/pyo3
- Merge pull request #23 from denehoffman/reading-root
- get rid of
from_momentum
method and replace with methods coming from 3-vectors - change order of four-vector components and modify operation of
boost
- bump dependencies
0.1.11 - 2024-11-29
- major bug/typo in boost method and tests to check for it
0.1.10 - 2024-11-20
- switch API for acceptance correction to not process genmc till projection
- change the way NLLs are constructed to allow the user to specify a generated dataset
- change
NLL
to always use len(accmc) forn_mc
- use pyproject.toml for doc dependencies
- add copy button to code
- update tutorial page
- add under construction notes
- finish unbinned tutorial
- fix doctests and update example_1 results
- switch argument ordering in
Manager.load
- reorganize main page and include tutorials
- (docs) fix doctest with missing parameter
0.1.9 - 2024-11-19
- add no-op implementations for adding 0 to add-able types
- update type hints with ropts and add magic methods to easily pickle
Status
- remove unused references
- (python) document
as_dict
0.1.8 - 2024-11-09
- (data) make
Event::get_p4_sum
generic over its argument - (variables) add Mandelstam variables
- (enums) add
Channel
enum - (enums) add serde to enums
- (amplitudes) add
From
impl forAmplitudeID
toExpression
conversion - (data) create
test_dataset
method for testing purposes as well as addDefault
impl toEvent
- (enums) add equality comparison to enums and convert to lowercase before string conversion
- (enums) Gottfried-Jackson string conversions were accidentally being redirected to Helicity
- (python) fix equations in Mandelstam docs
- fix some documentation issues
- ignore in codecov, eventually need to test this on the Python side instead
- (amplitudes) add unit tests for
ylm
,zlm
,breit_wigner
, andkmatrix
modules - (common) add unit tests for
common
amplitudes - (variables) add unit tests for
variables
module - (amplitudes) add unit tests for
amplitudes
mod - (variables) use new instead of full struct definition for combined
Variable
s - (enums) add unit tests for converting strings to enums
- (resources) add unit tests for module
- (data) add unit tests for module
- correct docs to reflect some recent changes in how NLLs are calculated
0.1.7 - 2024-11-08
- add
NLL::project_with
to do projecting and isolation in one step - add
__radd__
implementations wherever__add__
is implemented
- bump dependency versions
- manipulate features to allow for MSRV of 1.70.0
- use latest rust version
- update readthedocs config in the hopes that it will properly build laddu
- increase TOC depth
- fix broken link
0.1.6 - 2024-11-07
- add methods to serialize/deserialize fit results
- add gamma factor calculation to 4-momentum
- test documentation
- add stable ABI with minimum python version of 3.7
- add python stub file for vectors
- make sure code works if no pol angle/magnitude are provided
- use the unweighted total number of events and divide data likelihood terms by
n_data
- correct phase in Zlm
- correct
PolAngle
by normalizing the beam vector - add amplitude module-level documentation
- correct path to sphinx config
- use incremental builds for maturin development
- add RTDs documentation badge to README and link to repo in docs
- separate command for rebuilding docs and making docfiles
- finish first pass documenting Python API
- fix typo in K-Matrix Rust docs
- resolve lint warning of
len
withoutis_empty
- more documentation for Python API
- fix data format which said that
eps
vectors have a "p" in their column names - document
vectors
Python API - add documentation for
Vector3
in Python API - docstrings are not exported with
maturin develop
- add documentation commands to justfile
- add automatic documentation and readthedocs support
- update README with codspeed badge
0.1.5 - 2024-10-31
- remove methods to open data into bins or filtered and replace with method on
Dataset
- wrap
Event
s insideDataset
s inArc
to reduce bootstrap copying - add benchmark for opening datasets
- add method to resample datasets (bootstrapping)
- switch to Codspeed for benchmarking
- update plot and add output txt file for example_1 and reorganize directory structure
- refactor data loading code into a shared function
0.1.4 - 2024-10-30
- add
gen_amp
config file for Pythonexample_1
- add python example
- add
Debug
derive forParameters
- add method to input beam polarization info and assume unity weights if none are provided
- adds a
LikelihoodScalar
term that can be used to scaleLikelihoodTerm
s by a scalar-valued parameter - expose the underlying dataset and Monte-Carlo dataset in the Python API for
NLL
and add method to turn anNLL
into aLikelihoodTerm
- some edits to
convert
module and exposure of theconvert_from_amptools
method in the main python package - add gradient calculations at
Amplitude
level - add
amptools-to-laddu
conversion script to python package - add python API for likelihood terms and document Rust API
- proof-of-concept for Likelihood terms
- put
Resources
inEvaluator
behind anArc<RwLock<T>>
- Add
LikelihoodTerm
trait and implement it forNLL
- update
example_1.py
to allow running from any directory - change NLL implementation to properly weight the contribution from MC
- properly handle summations in NLL
- correct type hints
- ensure
extension-module
is used with thepython
feature - make sure rayon-free build works
- these indices were backwards
- this should correctly reorganize the gradient vectors to all have the same length
- correct some signatures and fix
PyObserver
implementation
- some stylistic changes to the README
- update README.md to include the first python example
- remove lints
- move kwarg extractor to be near parser
- update
ganesh
to latest version (better default epsilons) - move parsing of minimizer options to a dedicated function to reduce code duplication
- add sample size specification
- move Likelihood-related code to new
likelihoods
module - change benchmark config
- store
Expression
s insideEvaluator
s to simplify call signatures
0.1.3 - 2024-10-22
- add options to the minimization callables and add binned
Dataset
loading to Python API - add filtered and binned loading for
Dataset
s - export
Status
andBound
structs fromganesh
as PyO3 objects and updateminimize
method accordingly - add
Debug
derive forParameterID
- add
LadduError
struct and work in proper error forwarding for reading data and registeringAmplitude
s - use
AsRef
generics to allow more versatileVariable
construction - add
ganesh
integration via L-BFGS-B algorithm - update to latest
PyO3
version
- missed one fully qualified path
- correct some namespace paths
- add
Dataset
andEvent
tovariables
- add scalar-like
Amplitude
s to python namespace - reorder expression and parameters
- remove main.rs from tracking
- update minimization example in README.md
- fix doctest
- update ganesh version
- switch order of expression and parameters in evaluate and project methods
0.1.2 - 2024-10-17
- remove tag check
0.1.1 - 2024-10-17
- remove coverage for f32 feature (for now)
- remove build for 32-bit Windows due to issue with rust-numpy