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
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.
|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
|||
'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:
- Intensity Modulated Radiation Therapy
- Optimization of Large Electrical Power Systems
- A Trust Region SQP Algorithm
- Shape Optimization in Aerodynamics
- Circuit Simulation
- Design of Nonlinear Controllers
Related Research Groups: