JuliaDiff / JuliaDiff/AbstractDifferentiation.jl
Caching interfaces
Nobody has claimed this yet.
- Dominant language
- Julia
- Stars
- 138
- Forks
- 18
- PR merge metrics
- No merged PRs in 30d
Description
All packages made for performance (ForwardDiff.jl, FiniteDiff.jl, SparseDiffTools.jl), include some kind of caching interface. For example, instead of ForwardDiff.jacobian(f,x), you should call ForwardDiff.jacobian(f,x,config). config, cache, etc. is all important for storing the cache vectors. So it would be good to extend the interface for allow each backend to have an (optional) config struct, which is just created on demand if not supplied by the user (which is how it's done in those packages anyways).
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Compare the caching interfaces described for ForwardDiff.jl, FiniteDiff.jl, and SparseDiffTools.jl, focusing on how config or cache objects are created and passed. Done means the abstract interface supports an optional backend-specific config that is created on demand when the user does not provide one.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- julia
- Domain
- backend-api-design
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100