Releases: gradhep/relaxed
v0.4.0: dict-based parameters!
What's Changed
This refactor was largely inspired by me wanting to better keep track of which parameter is doing what! Thanks to many of the operations in jax working on arbitrary pytrees, I'm pursuing tracking parameters as dictionaries, and have adjusted the fit-level logic to now assume this. CI has been updated to include a different kind of HistFactory model structure that looks much more like what I'm building out elsewhere!
The assumptions for this library to work are now just this:
import equinox as eqx # turn our class into a PyTree
class Model(eqx.Module):
# any attributes here that are not valid jax types (e.g. str) need to be declared like:
name: str = eqx.field(static=True)
def logpdf(self, pars: dict[str, ArrayLike], data: Array) -> float | Array: ...
def expected_data(self, pars: dict[str, ArrayLike]) -> Array: ...
In particular, note that logpdf returns a float (or scalar array) -- this means that pyhf models, if they are ever compatible again, would need to patch in lambda pars, data: model.logpdf(pars, data)[0]
.
Python 3.8 has been officially dropped, keeping in-step with libraries that this depends on (e.g. equinox).
- remove intel macs from CI since jaxopt LBFGS-B does not correctly converge by @phinate in #59
- Refactor that assumes parameters are in a key-value mapping by @phinate in #61
Full Changelog: v0.3.0...v0.4.0
v0.3: for PyTree models
This is a future-looking release that is designed to work with model classes that are JAX PyTrees, as it's the most viable solution for the project long-term. Uses LFBGS-B solver by default in the fits.
v0.2.2
Extremely thin release to add cls_method
kwarg to infer.hypotest
What's Changed
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #47
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #48
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #49
- Bump codecov/codecov-action from 3.1.0 to 3.1.1 by @dependabot in #51
- Bump pypa/gh-action-pypi-publish from 1.5.0 to 1.5.1 by @dependabot in #50
- add new
cls_method
kwarg forinfer.hypotest
to optionally give access toCLsb
(mostly for experiments) by @phinate in #53
Full Changelog: v0.2.1...v0.2.2
v0.2.1
Quality of life changes! Including quick access to a dummy version of pyhf
:)
What's Changed
- refactor into .py files from folder structure, less messy and easier for API docs by @phinate in #35
- Documentation! by @phinate in #33
- Add some examples (that will eventually make their way to docs) by @phinate in #36
- add binder link! by @phinate in #37
- be kinder to notebook CI :) by @phinate in #38
- build: Remove upper bound on python_requires by @matthewfeickert in #41
- Docs: fix links in README.md by @agoose77 in #39
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #32
- Bump codecov/codecov-action from 2.1.0 to 3.1.0 by @dependabot in #34
- ci: Add Python 3.10 to testing by @matthewfeickert in #42
- compute cdf only one time by @wiso in #43
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #46
- Bump pre-commit/action from 2.0.3 to 3.0.0 by @dependabot in #45
New Contributors
- @matthewfeickert made their first contribution in #41
- @agoose77 made their first contribution in #39
- @wiso made their first contribution in #43
Full Changelog: v0.2.0...v0.2.1
v0.2.0
v0.1.3
v0.1.2
v0.1.1
v0.1: new, shiny API!
Many quality of life changes, including mirroring of pyhf
api for hypothesis tests and fitting.
Soon-to-be deprecated old-style API, released for the sake of example preservation
v0.0.6 Update __init__.py