Back 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, differential equations. 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.

o download the report, click here: PCOMP.pdf