Closed vpuri3 closed 1 year ago
Patch coverage: 87.30
% and project coverage change: +0.62
:tada:
Comparison is base (
e4b7122
) 84.95% compared to head (6f1e267
) 85.58%.
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.
It would be better, so as to avoid confusion between u, v
in df/du * v
, rename u --> VJP_in
, v --> VJP_mult
and pass it as a kwarg to update_coefficients
. That way L(v, p, t)
will be the same as L * v
.
This is good to go. @ChrisRackauckas please take a look
rerunning CI because of flaky ODE.jl "matrix contains infs/nans error"
@avik-pal can you take a look? I know you looked at the vecjec potential usage in SciMLSensitivity and I think we should be trying to get it to there
@avik-pal ping
merge https://github.com/JuliaDiff/SparseDiffTools.jl/pull/244 first
In this PR, I have fixed some bugs in the implementation of
vector jacobian products
. In doing so, I have separated theVecJac
implementations forAutoFiniteDiff
, andAutoZygote
. The latter lives in theZygote
extension. A concern with the Zygote VJP implementation raised in https://github.com/SciML/SciMLSensitivity.jl/pull/808 was that the underlying functions,auto_vecjac(!)
, would recompute the pullback function every time theFunctionOperator
is called by*, mul!
. I have made it so that the pullback is recomputed only whenupdate_coefficients(!)
is called with the keyword argumentVJP_input
.Tests are added in
test/test_vecjac_products.jl
to demonstrate this behaviour.