Show tools for a specific language:
- Show all
- Fortran 77/90
- Language independent
Alphabetical List of Tools
- ADF (Fortran77,Fortran95)
The vivlabs ADF Automatic Differentiation Software for FORTRAN delivers rapid integration of automatic differentiation capability to your new and existing applications on all operating system platforms. ADF automatically exploits the sparsity within your equation matrices, which leads to winning performance for both small, large and extremely large applications.
- ADG (Fortran 77/90,Fortran77,Fortran95)
The Adjoint Code Generator (ADG) is a source-to-source transformation tool that is used for generating the adjoint model. Designed with the Least Program Behavior Decomposition Method, ADG supports global data dependent analysis and code optimization at a statement class.
- ADIFOR (Fortran77)
Given a Fortran 77 source code and a user's specification of dependent and independent variables, ADIFOR will generate an augmented derivative code that computes the partial derivatives of all of the specified dependent variables with respect to all of the specified independent variables in addition to the original result.
- ADOL-C (C/C++,R,python)
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.
- ADOL-F (Fortran95)
The tool ADOL-F was an early attempt to use the overloading capabilities newly introduced to Fortran to create an execution trace. The idea was to replicate the format of the ADOL-C execution trace (aka the "tape") so that one could reuse the ADOL-C drivers to do the derivative computation. Because of the lack of a "destructor" for the active type that enables the execution trace, there was no means to curtail the growth of active locations (see ADOL-C). The tool is no longer maintained and listed here just to keep the record complete.
- APMonitor (Interpreted)
The APMonitor Modeling Language is an interpreted language for algebraic and differential equations. As an interpreted language, it has the ability to provide analytic derivatives to almost any programming language.
- AUTO_DERIV (Fortran77,Fortran95)
AUTO_DERIV is a Fortran 90 module which can be used to evaluate the first and second derivatives of any continuous function with any number of independent variables. The function can be implicitly encoded in Fortran 77/90; only slight modifications in user code are required.
- COSY INFINITY (Fortran77,Fortran95,C/C++)
COSY is an open platform to support automatic differentiation, in particular to high order and in many variables. It also supports validated computation of Taylor models. The tools can be used as objects in F95 and C++ and through direct calls in F77 and C, as well as in the COSY scripting language which supports dynamic typing.
- DFT (Fortran 77/90,Fortran77,Fortran95)
DFT is a source-to-source transformation tool for generating the tangent linear model, and it supports global data dependent analysis and code optimization at a statement class.
- Enzyme (C/C++,Fortran 77/90,Fortran2003,Fortran2008,Fortran77,Fortran95,Julia,LLVM,Language independent)
Enzyme is a plugin that performs automatic differentiation (AD) of statically analyzable LLVM. By operating on the LLVM level Enzyme is able to perform AD across a variety of languages and perform optimization prior to AD
- FortranCalculus Compiler (FortranCalculus)
FC-Compiler™ is a (free) Calculus-level Compiler that simplifies tweaking parameters in ones math model. The FortranCalculus (FC) language is for math modeling, simulation, and optimization. FC is based on Automatic Differentiation that simplifies computer code to an absolute minimum; i.e., a mathematical model, constraints, and the objective (function) definition. Minimizing the amount of code allows the user to concentrate on the science or engineering problem at hand and not on the (numerical) process requirements to achieve an optimum solution. FC-Compiler™ has many (50+) example problems with output for viewing and getting ideas on solving your own problems. Industry problems with solutions over the past fifty plus years have been put into a textbook to show the power of Calculus-level Problem-Solving. The textbook is available at goal-driven.net/textbooks.
- GRESS (Fortran77)
GRESS (Gradient-Enhanced Software System) reads an existing Fortran code as input and produces an enhanced Fortran code as output. The enhanced code has additional new lines of coding for calculating derivative information analytically but using the rules of calculus. The enhanced model reproduces the reference model calculations and has the additional capability to compute derivatives and sensitivities specified by the user. The user also specifies whether the direct or adjoint method is to be used in computing sensitivities.
- HSL_AD02 (Fortran95)
Provides automatic differentiation facilities for variables specified by Fortran code. Each active variable must be declared to be of a derived type defined by the package instead of real. The backward method is available for first and second derivatives. The forward method is available for derivatives of any order.
- NAGWare Fortran 95 (Fortran77,Fortran95)
The NAGWare Fortran 95 Compiler is being extended to provide AD functionality. The first prototype will be distributed to beta testers by November 2002.
- OpenAD (C/C++,Fortran77,Fortran95)
OpenAD is a source transformation tool that provides a language independent framework for the development and use of AD algorithms. It interfaces with language specific front-ends via an XML representation of the numerical core. Currently, Open64 is the front-end for FORTRAN and EDG/Sage3 the front-end for C/C++.
- PCOMP (Fortran77)
PCOMP implements the forward and reverse mode for functions written in a FORTRAN-like modeling language, a subset of FORTRAN with a few extensions. First- and second-order derivatives are supported.
- pycppad (Interpreted,python)
A boost ::python interface to the C++ Algorithmic Differentiation package CppAD. The pycppad package is distributed under the BSD license.
- R/ADR (R)
R/ADR uses source transformation to implement AD for the R language. It uses the transformation server at r-adr.de to perform the differentiation of R functions. The R package called adr provides the required runtime environment and a set of utility functions. Conceptually, R/ADR is very similar to ADiMat.
- Rapsodia (C/C++,Fortran95)
Rapsodia is Python based code generator the creates C++ or Fortran libraries to efficiently compute higher order derivatives via operator overloading.
- TAF (Fortran 77/90,Fortran2003,Fortran2008,Fortran77,Fortran95)
Transformation of Algorithms in Fortran (TAF) is a source-to-source AD-tool for Fortran-95 programs. TAF supports forward and reverse mode of AD and Automatic Sparsity Detection (ASD) for detection of the sparsity structure of Jacobians.
- TAMC (Fortran77)
TAMC is a source-to-source AD-tool for FORTRAN-77 programs. The generated code propagates derivatives in forward (tangent linear) or reverse (adjoint) mode. TAMC is very flexible thanks to many options and user directives.
- TAPENADE (C/C++,Fortran77,Fortran95)
TAPENADE is a source-to-source AD tool. Given a FORTRAN77, FORTRAN95, or C source program, it generates its derivative in forward (tangent) or reverse (adjoint) mode. TAPENADE is the successor of ODYSSEE. TAPENADE is directly accessible through a web servlet, or can be downloaded locally.
- TaylUR (Fortran95)
TaylUR is a Fortran 95 module to automatically compute the numerical values of a complex-valued function's derivatives w.r.t. several variables up to an arbitrary order in each variable, but excluding mixed derivatives.
- Treeverse / Revolve (C/C++,Fortran77,Fortran95)
Revolve implements an efficient checkpointing algorithm for the exact computation of a gradient of a functional consisting of a (pseudo) time-stepping procedure.