Skip to content

Releases: gradhep/relaxed

v0.4.0: dict-based parameters!

04 Aug 10:39
783dec3
Compare
Choose a tag to compare

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

04 Jul 19:32
Compare
Choose a tag to compare

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

28 Oct 08:18
8654d8f
Compare
Choose a tag to compare

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 for infer.hypotest to optionally give access to CLsb (mostly for experiments) by @phinate in #53

Full Changelog: v0.2.1...v0.2.2

v0.2.1

24 Jun 13:37
0f286d5
Compare
Choose a tag to compare

Quality of life changes! Including quick access to a dummy version of pyhf :)

What's Changed

New Contributors

Full Changelog: v0.2.0...v0.2.1

v0.2.0

04 Apr 19:00
c27036b
Compare
Choose a tag to compare

Adds a few new features, including:

  • Add differentiable discovery significance by @phinate in #26
  • Add expected_pars kwarg to relaxed.infer.hypotest for when mle pars are known a priori by @phinate in #28
  • add relaxed.cut, relaxed.metrics.asimov_sig by @phinate in #29

Full Changelog: v0.1.3...v0.2.0

v0.1.3

05 Mar 16:17
d0c54c1
Compare
Choose a tag to compare

Used to create a Zenodo DOI!

v0.1.2

30 Nov 15:30
Compare
Choose a tag to compare

Update dependencies to directly include pyhf, and change API for gaussianity and fisher_info to use pyhf.Models directly instead of wrapping a logpdf function.

v0.1.1

29 Nov 14:41
Compare
Choose a tag to compare

Adds gaussianity to ops!

v0.1: new, shiny API!

28 Nov 16:26
Compare
Choose a tag to compare

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

03 Nov 12:23
8a05337
Compare
Choose a tag to compare