PCOMP - Modeling Language with Automatic Differentiation

Version 5.3 (1996)
PCOMP reads symbolically defined nonlinear functions that are composed of standard elementary functions, and compiles them. Subsequently function and, in particular, derivative values up to order two can be computed directly, i.e., without numerical approximation or symbolic differentiation. Alternatively FORTRAN code for function and gradient evaluation can be generated by PCOMP.
Numerical Method:
The underlying syntax of the proposed language is described by means of a formal grammar and is similar to FORTRAN with respect to input format and arithmetic expressions. In case of successful syntax check, an intermediate code is stored in an integer and a real working array and is passed to the subroutines that evaluate function and gradient values. Derivative computation is performed either by forward or backward evaluation.
Program Organization:
PCOMP consists of several FORTRAN subroutines for parser, function and derivative evaluation, and code generation. Data must be passed on working arrays or files between these subroutines.
Special Features:
  1. flexible index sets
  2. constants
  3. arbitrary names for variables and functions
  4. SUM- and PROD-statements
  5. indexed functions, data and variables
  6. spline, linear, and constant interpolation functions
  7. data definition in form of tables
  8. IF, ELSE, ENDIF statements, nested
  9. macros
  10. interface to user provided functions
  11. full documentation by separate report
  12. FORTRAN source code
PCOMP is used to develop executable codes for nonlinear optimization which allow symbolic input of nonlinear problem functions, and is implemented, e.g., in EASY-FIT.
M. Dobmann, M. Liepelt, K. Schittkowski, C. Trassl, PCOMP: A FORTRAN code for automatic differentiation - language description and user's guide, Report, Dept. of Mathematics, University of Bayreuth (1994)
M. Dobmann, M. Liepelt, K. Schittkowski, Algorithm 746: PCOMP: A FORTRAN code for automatic differentiation, ACM Transactions on Mathematical Software, Vol. 21, No. 3, 233-266 (1994) 
For more details contact the author.
Back to home page Back to list of software klaus@schittkowski.de