Skip to content
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

First pass #4

Closed
7 tasks done
ChrisRackauckas opened this issue May 23, 2019 · 4 comments
Closed
7 tasks done

First pass #4

ChrisRackauckas opened this issue May 23, 2019 · 4 comments
Assignees

Comments

@ChrisRackauckas
Copy link
Member

ChrisRackauckas commented May 23, 2019

  • Convert sparse matrix to graph
  • Perform coloring on graph
  • spit out color vector
  • make finite differencing choose directions based on color vector
  • add the Jacobian decompression
  • make dual numbers in the directions of the color vector
  • decompress the partials into the Jacobian
@pkj-m
Copy link
Contributor

pkj-m commented Jun 13, 2019

JuliaDiff/FiniteDiff.jl#58 handles finite differencing based on color vector and Jacobian decompression.

@ChrisRackauckas
Copy link
Member Author

Now this is how you do forward-mode automatic differentiation in the direction of v: https://github.com/JuliaDiffEq/DiffEqOperators.jl/blob/master/src/jacvec_operators.jl#L7-L13 . Let me know if you'd like some starter code for this, or want to discuss how that's working. Essentially what needs to be done is a multi-dimensional partial in the direction of each color vector, so color .== i for each i < maximum(color), making one dual cache1 .= ForwardDiff.Dual{JacVecTag}.(x, v1, v2, v3, .., vn), solving with that dual, and extracting each vector.

For a first pass let it be allocating, and then we'll optimize it in the next step.

@ChrisRackauckas
Copy link
Member Author

@pkj-m nicely done!

@pkj-m
Copy link
Contributor

pkj-m commented Jun 19, 2019

For record, #17 implements dual numbers in the direction determined by the coloring vector.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants