Next: ADOL-C Up: Contents Previous: OPTIMA90


ADIC: Automatic Differentiation of C Programs

SYNOPSIS:

ADIC (Automatic Differentiation of C) is a source translator augmenting ANSI-C programs with statements for the computation of derivatives.

WHOM TO CONTACT:

Christian Bischof or Lucas Roh
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, http://www.mcs.anl.gov/home/roh
e-mail: bischof@mcs.anl.gov, roh@mcs.anl.gov, adic@mcs.anl.gov

DOCUMENTATION:

FUNCTIONALITY:

ADIC is a source translator augmenting ANSI-C source code with statements for the computation of derivatives. For first order derivatives, it employs the same using a hybrid forward/reverse mode approach as in ADIFOR. The experimental second-order module is for the most part shared between ADIFOR and ADIC. With minor restrictions, the current ADIC prototype accepts arbitrary ANSI-C programs and can handle, for example, subroutines, dynamic memory allocation, and pointers. The code generated is portable ANSI-C code that can easily be modified to print out sensitivities. ADIC also has some capabilities to handle C++ codes.

The user interface of ADIC is similar to that of ADIFOR and, in particular, derivatives generated by a Fortran code differentiated with ADIFOR, say, can easily be chained with an ADIC-augmented C code and vice versa, thereby allowing easy computation of derivatives of mixed Fortran and C programs. ADIC also can transparently exploit sparsity in derivative computations through the use of the SparsLinC library.

AVAILABILITY:

We are currently distributing a beta version of ADIC to "friendly sites." If you are interested in using ADIC, email adic@mcs.anl.gov.


Next: ADOL-C Up: Contents Previous: OPTIMA90