-
Notifications
You must be signed in to change notification settings - Fork 39
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
add finite_difference_jvp
#191
Conversation
Thank you for giving it a try! I'll try to review a bit later but I think like the other operators, this would be most useful with a |
Yes it needs a cache. |
Hi @oscardssmith, friendly ping on this one, do you think you can complete it? Otherwise the performance of sparse Jacobians with DI+FiniteDiff will be bad, so I think this might be a priority before switching OrdinaryDiffEq to DI. |
oh yeah, I can finish this off. |
Add the pushforward operation with implementation taken from jacobian but simplified.
f51be8e
to
82fc83a
Compare
ok, this is finally updated to have a VJP cache. I've given it a little testing, and will add some actual tests, but I think this is mostly ready to merge! |
Thanks @oscardssmith! I don't see any mention of a |
something went very wrong in the git process |
now it actually contains the thing it was supposed to :) |
This version passes my preliminary DI correctness tests! Note that I didn't benchmark performance or allocations or anything, I just used your code inside For testing here, perhaps the easiest option is to augment the |
Cross-referencing what will become the ensuing DI PR: JuliaDiff/DifferentiationInterface.jl#705 |
Tests added (and some of the forward mode tests for jacobians have been strengthened from 1e-4 to 1e-6 because they were aggressively loose tests before) |
Tests are passing. Time to merge? |
I can make a review pass tomorrow but I'm not familiar with this package so I'd rather have someone more confident with FiniteDiff give an opinion? |
Looks like @ChrisRackauckas has merged all PRs in the past couple months so do you want to review? |
fx1, | ||
fdtype :: Type{T1} = Val{:forward}, | ||
|
||
Non-Allocating Cache Constructor. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
well it does make a copy of x
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yes the non-allocating cache is expected to just use the arrays as given 😅
we should probably also increment the minor version? |
Any way to get code coverage information? Codecov protests here (and on master too):
|
gentle ping, this is basically finished I think, although codecov would be nice? |
Add the pushforward operation with implementation taken from jacobian but simplified. This is my first time touching this code, so let me know if there's anything obviously wrong here.