P. D. Hovland and B. Norris, "Users' Guide to ADIC 1.1," Technical Memorandum ANL/MCS-TM-225, July 2002. [pdf]
This guide describes the use of the Automatic Differentiation in C (ADIC) system. ADIC is a suite of tools and libraries that automates the process of generating derivatives for scientific programs. In the context of solving PDEs, optimizations, sensitivity analysis, and inverse problems, researchers often require the derivatives ¶f /¶x of a function f expressed as a program with respect to some input parameter(s) x. Automatic differentiation (AD) techniques augment the program with derivative computation by applying the chain rule of calculus to elementary operations in an automated fashion. ADIC uses sophisticated compiler techniques to augment the input C programs with derivative computation capability in an automatic fashion. It also provides a finer control of derivative code generation process via control scripts and pragmas. Another significant capability of ADIC is its component architecture, AIF, that allows ADIC's capability to be extended via plug-in modules.
For more information about ADIC, see http://www.mcs.anl.gov/adic.