optimistix icon indicating copy to clipboard operation
optimistix copied to clipboard

New solvers

Open patrick-kidger opened this issue 9 months ago • 0 comments

  • [ ] Anderson acceleration
  • [ ] LBFGS
  • [ ] Affine

Powell's (unconstrained) derivative free optimisers:

  • [ ] UOBYQA
  • [ ] NEWUOA

On an affine solvers: such systems can be handled with a single linear solve. JAX can detect affine functions via

import jax
import jax.interpreters.partial_eval as pe

def is_affine(f, *args, **kwargs):
    jaxpr = jax.make_jaxpr(jax.jacfwd(f))(*args, **kwargs)
    _, used_inputs = pe.dce_jaxpr(jaxpr.jaxpr, [True] * len(jaxpr.out_avals))
    return all(not x for x in used_inputs)

patrick-kidger avatar Oct 03 '23 18:10 patrick-kidger