"ADIC2: Development of a Component Source Transformation System for Differentiating C and C++"
S. H. K. Narayanan, B. Norris, and B. Winnicka
ICCS 2010, vol. 1, no. 1, Amsterdam, Netherlands, Elsevier B.V., , pp. 1839-1847. Also Preprint ANL/MCS-P1714-0110
Preprint Version: [pdf]
We present a new tool, ADIC2, for automatic differentiation (AD) of C and C++ code through source-to-source transformation. ADIC2 is the successor of the ADIC differentiation tool, which supports forward mode AD of C and a small subset of C++. ADIC2 was completely redesigned and reimplemented as part of the OpenAD software framework, resulting in a robust, flexible, and extensible tool for differentiating C and some features of C++, with plans for full support of C++ in the near future. We discuss some of the challenges in creating AD tools for C and C++ in general and describe the component approach employed in the design and
implementation of ADIC2.