SYNOPSIS:
ADIFOR (Automatic Differentiation of Fortran) augments Fortran 77
programs with statements for the computation of
first-order derivatives.
WHOM TO CONTACT:
Christian Bischof
Mathematics and Computer Science Division
Bldg. 221, Rm. C-223
Argonne National Laboratory
9700 S. Cass Ave.
Argonne, IL 60439
Tel.: (630) 252-8875
FAX: (630) 252-5986
WWW: http://www.mcs.anl.gov/people/bischof
e-mail: bischof@mcs.anl.gov
Alan Carle
Center for Research on Parallel Computation
Rice University, MS 41
6100 S. Main Street
Houston, TX 77251-1892
Tel.: (713) 285-5368
FAX: (713) 285-5136
WWW: http://www.cs.rice.edu/~carle
e-mail: carle@cs.rice.edu
DOCUMENTATION:
-
WWW:
- papers:
- C. Bischof, A. Carle, P. Khademi, and
A. Mauer, The ADIFOR2.0
System for the Automated Differentiation of Fortran 77 Programs,
Argonne Preprint ANL-MCS-P481-1194, and CRPC Technical Report
CRPC-TR94491.
- C. Bischof, A. Carle, P. Khademi, A. Mauer, and
P. Hovland, ADIFOR2.0
User's Guide Argonne National Laboratory Technical Memorandum
ANL/MCS-TM-192, and CRPC Technical Report CRPC-TR95516-S.
-
C. Bischof, A. Carle, G. Corliss, A. Griewank, and P. Hovland, ADIFOR -
Generating Derivative Codes from Fortran Programs, Argonne Preprint
MCS-P263-0991, and CRPC Technical Report CRPC-TR91185.
FUNCTIONALITY:
The ADIFOR (Automatic Differentiation of Fortran) system provides automatic
differentiation for programs written in Fortran 77.
Given a Fortran subroutine (or collection of
subroutines) for a function f , ADIFOR produces Fortran 77
subroutines for the computation of the derivatives of this function.
The ADIFOR-generated code can be computed in various ways. Given a
set of program variables considered the independent
and dependent variables, respectively (let's call them "X" and "Y" for the
sake of discussion), ADIFOR generates code that
computes d Y/d X * S, where S, the "seed matrix", is initialized by
the user at runtime. In this fashion, the same ADIFOR-generated code
can be used to compute Jacobian*vector products, the whole Jacobian,
or "compressed" versions of sparse Jacobians. This interface also allows
for easy chaining of derivatives between different codes.
HIGHLIGHTS:
The ADIFOR 2.0 system offers the following features:
- Full Fortran 77 Support:
- For example,
ADIFOR 2.0 supports common blocks,
arbitrary subroutine calling sequences,
COMPLEX arithmetic, FUNCTIONs and SUBROUTINEs,
statement functions, or procedure parameters.
In addition to these features, the ADIFOR 2.0 preprocessor
also supports
common extensions such as DOUBLE COMPLEX, INCLUDE
statements,
and IMPLICIT NONE.
- Flexible Intrinsic Handler:
- The ADIntrinsics 1.0 system, which
is part of ADIFOR 2.0
provides for various reporting levels in response to
exceptions such as the differentiation of sqrt(x) when x is
zero, and can easily be customized through the use of template files.
- Transparent Sparsity Support:
- Code generated with ADIFOR
2.0 can
perform derivative computations using the SparsLinC (Sparse Linear
Combination) library, thus transparently exploiting sparsity arising in
large sparse Jacobian computations or gradients of functions that have
a sparse Hessian.
- Code Customization:
- ADIFOR 2.0 provides mechanisms to generate
code that is particularly suited for the computation of
Jacobian*vector products.
AVAILABILITY:
ADIFOR is available for noncommercial use free of charge, but since it
is copyrighted software, the signing of a license is required.
Check the Web sites for a form, or contact Bischof or Carle.