patrick-kidger/optimistix

Nonlinear optimisation (root-finding, least squares, ...) in JAX+Equinox. https://docs.kidger.site/optimistix/

What it solves

Optimistix provides a unified, modular framework for solving nonlinear problems, including root finding, minimisation, fixed points, and least squares. It simplifies the process of transforming and solving these different types of mathematical problems using the JAX ecosystem.

How it works

Built on JAX, the library leverages autodiff, autoparallelism, and GPU/TPU support. It uses PyTrees to manage state and offers interoperability with Optax. It allows users to define modular optimisers—for example, combining a BFGS quadratic bowl with a dogleg descent path and a trust region update—and can automatically convert between problem types, such as turning a root-finding problem into a least squares problem.

Who it’s for

It is designed for researchers and developers working in scientific computing and machine learning who need high-performance, differentiable nonlinear solvers.

Highlights

  • Interoperable solvers: Automatically converts between different problem types (e.g., root finding to least squares).
  • Modular optimisers: Allows custom combinations of descent paths and update rules.
  • JAX-native: Full support for autodiff, GPU/TPU acceleration, and fast compilation.
  • Optax integration: Works seamlessly with the DeepMind Optax library.

Related

  • Project
  • Project
  • Project
  • Project
  • Project