Algorithm 746: PCOMP: A FORTRAN Code for Automatic Differentiation
M. Dobmann, M. Liepelt, K. Schittkowski: ACM Transactions on Mathematical Software, Vol. 21, No. 3, 233-266 (1995)
Automatic differentiation is an interesting and important tool
for all numerical algorithms that require derivatives, e.g.
in nonlinear programming, optimal control, parameter estimation,
The basic idea is to avoid not only numerical approximations, which are
expensive with respect to CPU time and contain round-off errors,
but also hand-coded differentiation.
The paper introduces the forward and backward accumulation methods
and describes the numerical implementation of a
computer code with the name PCOMP. The main intention of the
approach used is to provide a flexible and portable FORTRAN
code for practical applications. The underlying language is
described in the form of a formal grammar and is a subset of
FORTRAN with a few extensions. Besides a parser that generates
an intermediate code and that can be executed independently from
the evaluation routines, there are other subroutines for the
direct computation of function and gradient values, which can be
called directly from a user program. On the other hand it
is possible to generate FORTRAN code for function and gradient
evaluation that can be compiled and linked separately.
To download the report, click here: PCOMP.pdf