CoDiPack is a C++-library that enables the computation of gradients in computer programs using Algorithmic Differentiation. It is based on the Operator Overloading approach and uses static polymorphism and expression templates, resulting in an extremely fast evaluation of adjoints or forward derivatives. It is specifically designed with HPC applications in mind.
- Reverse and Forward mode derivatives.
- Higher order derivatives.
- MPI communication using Adjoint MPI.
- Flexible memory handling (several implementations will be added in the future).
- External function interface.
If you use CoDiPack in one of your applications and write a paper it would be nice if you could cite one of the following papers:
High-Performance Derivative Computations using CoDiPack (Article)
arXiv preprint arXiv:1709.07229, 2017.