Software
- C/C++
-
Package License Approach Brief Info ADC Version 4.0 nonfree OO ADIC free for noncommercial SCT forward mode ADMB BSD SCT+OO ADNumber Public Domain OO Support for forward mode, reverse mode, partial, nth, and nth partial derivatives. ADOL-C CPL 1.0 or GPL 2.0 OO arbitrary order forward/reverse, part of COIN-OR AMPL free for students SCT FADBAD++ free for
noncommercialOO uses operator new CasADi LGPL OO/SCT Forward/reverse modes, matrix-valued atomic operations. CppAD CPL 1.0 or GPL 2.0 OO arbitrary order forward/reverse, AD for arbitrary Base including AD , part of COIN-OR; can also be used to produce C source code using the CppADCodeGen library. OpenAD depends on components SCT Sacado GPL OO A part of the Trilinos collection, forward/reverse modes. Stan BSD OO Estimates Bayesian statistical models using Hamiltonian Monte Carlo. TAPENADE Free for noncommercial SCT CTaylor free for noncommercial OO truncated taylor series, multi variable, high performance, calculating and storing only potentially nonzero derivatives, calculates higher order derivatives, order of derivatives increases when using matching operations until maximum order (parameter) is reached, example source code and executable available for testing performance
- Fortran
-
Package License Approach Brief Info ADF Version 4.0 nonfree OO ADIFOR >>>
(free for non-commercial)SCT AUTO_DERIV free for non-commercial OO OpenAD depends on components SCT TAPENADE Free for noncommercial SCT
- Matlab
-
Package License Approach Brief Info AD for MATLAB GPL OO Forward (1st & 2nd derivative, Uses MEX files & Windows DLLs) Adiff BSD OO Forward (1st derivative) MAD Proprietary OO ADiMat ? SCT Forward (1st & 2nd derivative) & Reverse (1st) myAD BSD OO Forward (1st & 2nd derivative)
- Python
-
Package License Approach Brief Info FuncDesigner BSD OO uses NumPy arrays and SciPy sparse matrices,
also allows to solve linear/non-linear/ODE systems and
to perform numerical optimizations by OpenOptScientificPython CeCILL OO see modules Scientific.Functions.FirstDerivatives and
Scientific.Functions.Derivativespycppad BSD OO arbitrary order forward/reverse, implemented as wrapper for CppAD including AD and AD< AD >. pyadolc BSD OO wrapper for ADOL-C, hence arbitrary order derivatives in the (combined) forward/reverse mode of AD, supports sparsity pattern propagation and sparse derivative computations uncertainties BSD OO first-order derivatives, reverse mode, transparent calculations algopy BSD OO same approach as pyadolc and thus compatible, support to differentiate through numerical linear algebra functions like the matrix-matrix product, solution of linear systems, QR and Cholesky decomposition, etc. pyderiv GPL OO automatic differentiation and (co)variance calculation CasADi LGPL OO/SCT Python front-end to CasADi. Forward/reverse modes, matrix-valued atomic operations.
- .NET
Package | License | Approach | Brief Info |
---|---|---|---|
AutoDiff | GPL | OO | Automatic differentiation with C# operators overloading. |
FuncLib | MIT | OO | Automatic differentiation and numerical optimization, operator overloading, unlimited order of differentiation, compilation to IL code for very fast evaluation. |
- Haskell
Package | License | Approach | Brief Info |
---|---|---|---|
ad | BSD | OO | Forward Mode (1st derivative or arbitrary order derivatives via lazy lists and sparse tries) Reverse Mode Combined forward-on-reverse Hessians. Uses Quantification to allow the implementation automatically choose appropriate modes. Quantification prevents perturbation/sensitivity confusion at compile time. |
fad | BSD | OO | Forward Mode (lazy list). Quantification prevents perturbation confusion at compile time. |
rad | BSD | OO | Reverse Mode. (Subsumed by 'ad'). Quantification prevents sensitivity confusion at compile time. |
- Octave
Package | License | Approach | Brief Info |
---|---|---|---|
CasADi | LGPL | OO/SCT | Octave front-end to CasADi. Forward/reverse modes, matrix-valued atomic operations. |
- Java
Package | License | Approach | Brief Info |
---|---|---|---|
JAutoDiff | - | OO | Provides a framework to compute derivatives of functions on arbitrary types of field using generics. Coded in 100% pure Java. |
Read more about this topic: Automatic Differentiation