Sprecher
Beschreibung
The provision of derivatives for a function defined by an evaluation procedure in a high level computer language like Fortran or C forms an important task for numerous applications comprising for example optimization, parameter estimation, and data assimilation. The technique of algorithmic differentiation (AD) offers an opportunity to provide derivative information of any order for the given code segment by applying the chain rule systematically to statements of computer programs.
The package ADOL-C uses operator overloading for differentiating automatically C and C++ codes. During an evaluation of the function to be differentiated the usage of a new data-type adouble causes the generation of an internal function representation. Afterwards several drivers allow a very flexible choice of the mode and order of differentiation to be performed. Naturally, this approach works also for codes based on classes, templates and other C++-features. The resulting derivative evaluation routines may be called from C, C++, Fortran, or any other language that can be linked with C.
In this presentation we briefly present these features of ADOL-C together with important applications of ADOL-C. This will go along with an extensive overview of 40 years of software development in various research environments discussing some of the challenges that ADOL-C faced during this period.