SciML / NonlinearSolve.jl

High-performance and differentiation-enabled nonlinear solvers (Newton methods), bracketed rootfinding (bisection, Falsi), with sparsity and Newton-Krylov support.
https://docs.sciml.ai/NonlinearSolve/stable/
MIT License
239 stars 42 forks source link

TrustRegion is missing optimizations of using vjps directly #167

Closed ChrisRackauckas closed 11 months ago

ChrisRackauckas commented 1 year ago

https://github.com/SciML/NonlinearSolve.jl/pull/159/files/17abaf0801fb7e61f7a5fafbfb89c2266aec9f40#diff-d4ded13aeff73c93c2977a4227ff0ba4a434dc462ff8cc433761133aff882405

This can be computed using jvps to avoid the full Jacobian

ChrisRackauckas commented 1 year ago

@avik-pal was this handled?

avik-pal commented 1 year ago

Not yet. This is what @DavidKoplow is going to work on.

But it should be quite simple to do. The hackiest thing would be map adjoint(::JacVec) -> VecJac and remove some checks