CoDiPack – Code Differentiation Package

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.

CoDiPack is released as Open-Source under GPL3.
Documentation and Tutorials can be found here.

Most recent stable version: 1.4.1
Current status of development branch: Build Status

Lead Developers: Max Sagebaum, Tim Albring
Responsibility: Prof. Nicolas R. Gauger


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:


Sagebaum, Max; Albring, Tim; Gauger, Nicolas

High-Performance Derivative Computations using CoDiPack (Article)

arXiv preprint arXiv:1709.07229, 2017.