https://github.com/juliadiff/polyesterforwarddiff.jl
https://github.com/juliadiff/polyesterforwarddiff.jl
Last synced: 4 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/juliadiff/polyesterforwarddiff.jl
- Owner: JuliaDiff
- License: mit
- Created: 2021-12-24T03:11:35.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-04-12T22:29:03.000Z (about 1 year ago)
- Last Synced: 2024-05-01T14:14:55.923Z (about 1 year ago)
- Language: Julia
- Size: 55.7 KB
- Stars: 27
- Watchers: 5
- Forks: 5
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Citation: CITATION.bib
Awesome Lists containing this project
README
# PolyesterForwardDiff
[](https://JuliaSIMD.github.io/Polyester.jl/stable)
[](https://JuliaSIMD.github.io/Polyester.jl/dev)
[](https://github.com/JuliaDiff/PolyesterForwardDiff.jl/actions/workflows/CI.yml)
[](https://codecov.io/gh/JuliaDiff/PolyesterForwardDiff.jl)PolyesterForwardDiff.jl is a parallelized ForwardDiff.jl. That's it. It's super fast. See [this paper for some benchmark results](https://www.biorxiv.org/content/10.1101/2021.11.15.468697v1.abstract).
## Example calls
It's pretty much the same as ForwardDiff.jl except it is threaded. The API is the same for gradients and Jacobians.
```julia
PolyesterForwardDiff.threaded_gradient!(f, dx, x, ForwardDiff.Chunk(8));
PolyesterForwardDiff.threaded_jacobian!(g, dx, x, ForwardDiff.Chunk(8));
PolyesterForwardDiff.threaded_jacobian!(g!, y, dx, x, ForwardDiff.Chunk(8));
PolyesterForwardDiff.threaded_gradient!(f, dx, x, ForwardDiff.Chunk(8),Val{true}()); #To enable tag checking
```## Citing
If you use this package, please cite:
```bib
@article{mester2022differential,
title={Differential methods for assessing sensitivity in biological models},
author={Mester, Rachel and Landeros, Alfonso and Rackauckas, Chris and Lange, Kenneth},
journal={PLoS computational biology},
volume={18},
number={6},
pages={e1009598},
year={2022},
publisher={Public Library of Science San Francisco, CA USA}
}
```