AD Tool: ADOL-C
Introduction
Applications
Tools
Research Groups
Workshops
Publications
My Account
About
Impress

ADOL-C


Summary:
The package ADOL-C facilitates the evaluation of first and higher derivatives of vector functions that are defined by computer programs written in C or C++. The resulting derivative evaluation routines may be called from C/C++, Fortran, or any other language that can be linked with C. ADOL-C is distributed by the COIN-OR Foundation with the Common Public License CPL or the GNU General Public License GPL.

URL: https://projects.coin-or.org/ADOL-C

Developers:
Mode: Forward
Reverse
 
Method: Operator overloading
 
Supported Language: C/C++
Julia
Python

Reference:
A. Walther, A. Griewank
Getting started with ADOL-C
Combinatorial Scientific Computing, Chapman-Hall CRC Computational Science, 2012



Features:


ADOL-C uses the operator overloading concept to compute in forward and reverse mode of automatic differentiation:

  • derivatives of any order

  • one-sided derivatives in non-smooth cases (e.g. evaluation of fabs)


For that purpose, scalar as well as vector modes are implemented.
Furthermore, ADOL-C provides drivers for the most common differentiation tasks, e.g.

  • gradient(....), jacobian(...), hessian(...)

  • jac_vec(...), vec_jac(...), hess_vec(...)


Additionally, ADOL-C can exploit the sparsity of derivative matrices by

  • calculating the sparsity pattern of Jacobians and Hessians

  • calculating compressed representations of sparse Jacobians and Hessians


Furthermore, ADOL-C provides

  • full higher-order derivative tensors

  • several special drivers, e.g. for ODEs

  • advanced automatic differentiation, i.e.,

    • optimal checkpointing for time integrations

    • adapted automatic differentiation for fixpoint iterations



  • parallel automatic differentiation for OpenMP parallel programs

  • a Julia interface ADOLC.jl


Supported Platforms:
  • Unix/Linux
  • Mac


Licensing: open source

Entries in our publication database that actually use ADOL-C in the numerical experiments:  81

The following diagram shows these entries versus the year of the publication.

10+
#Entries
0
1
5
1
3
7
2
8
5
3
7
4
3
9
3
5
6
3
2
1
1
1
1
'92 '96 '98 '99 '00 '01 '02 '03 '04 '05 '06 '07 '08 '09 '10 '11 '12 '13 '14 '15 '18 '19
Year

Selected Applications:

Related Research Groups:

  

Contact:
autodiff.org
Username:
Password:
(lost password)