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

  • flexible index sets
  • constants
  • arbitrary names for variables and functions
  • SUM- and PROD-statements
  • indexed functions, data and variables
  • spline, linear, and constant interpolation functions
  • data definition in form of tables
  • IF, ELSE, ENDIF statements, nested
  • macros
  • interface to user provided functions
  • full documentation by separate report
  • 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.