Skip to content

Optimistix v0.1.0

Latest

Choose a tag to compare

@github-actions github-actions released this 16 Feb 13:35
· 6 commits to main since this release

Breaking changes:

  • Verbose printing has changed (across all supported solvers: optimistix.{DogLeg, LevenbergMarquardt, IndirectLevenbergMarquardt, LBFGS, ...etc}).

    Instead of consuming a frozenset of elements to display, e.g. LevenbergMarquardt(..., verbose=frozenset({"loss"})), then this should be set to either False (the default, print nothing), True (print everything), or to a callable to have full control over what will be printed.

Features:

  • optimistix.FixedPointIteration now optionally supports damping. (Thanks @aidancrilly! #210)

Bugfixes:

  • No longer triggering JAX initialisation on import. (#186)
  • optimistix.BestSoFarMinimiser and optimistix.BestSoFarLeastSquares should now correctly check the final step when determining the best result. (#33, #211)
  • optimistix.BFGS now accepts float32 input even when JAX is in float64 mode. Previously this would crash. (#207, #212)
  • In the solver.step API, solvers were incorrectly reporting the aux output from a different step. I don't think this should affect results from the ultimate e.g. root_find(...).aux, but it will have affected those interacting with the per-step API directly. (#211)
  • If a solver.terminate returns a non-successful result then this will terminate the solve. Previously this would be ignored and only the boolean flag was respected.

Misc:

  • If a nonfinite value occurs during the solve then the solve will terminate.
  • Minimum Python version is now 3.11.
  • For contributors: added lots of benchmarks.

New Contributors

Full Changelog: v0.0.11...v0.1.0