Abstract
The C++ package ADOL-C described here facilitates the evaluation of first and higher derivatives of vector functions that are defined by computer programs written in C or C++. The resulting derivative evaluation routines may be called from C/C++, Fortran, or any other language that can be linked with C. The numerical values of derivative vectors are obtained free of truncation errors at a small multiple of the run-time and randomly accessed memory of the given function evaluation program. Derivative matrices are obtained by columns or rows. For solution curves defined by ordinary differential equations, special routines are provided that evaluate the Taylor coefficient vectors and their Jacobians with respect to the current state vector. The derivative calculations involve a possibly substantial (but always predictable) amount of data that are accessed strictly sequentially and are therefore automatically paged out to external files.
Supplemental Material
Available for Download
Software for "ADOL-C: A Package for the Automatic Differentiation of Algorithms Written in C/C++"
- AVERICK, B., MORE, J., BISCHOF, C., CARLE, A., AND GRIEWANK, A. 1993. Computing large sparse Jacobian matrices using automatic differentiation. Preprint MCS-P348-0193, Argonne National Laboratory, Argonne, Ill.Google Scholar
- BISCHOF, C. H., CARLE, A., CORLISS, G. F. GRIEWANK, A., AND HOVLAND P. 1992. ADIFOR: Generating derivative codes from Fortran programs. Sci. Program. 1, 1, 1-29.Google Scholar
- BRENAN, K. E., CAMPBELL, S. L., AND PETZOLD, L. R. 1989. Numerical Solution of Initial Value Problems in Differential-Algebraic Equations. Elsevier (North-Holland), Amsterdam.Google Scholar
- CACUCI, D. G. 1981a. Sensitivity theory for nonlinear systems. I. Nonlinear functional analysis approach. J. Math. Phys. 22, 12, 2794-2802.Google ScholarCross Ref
- CACUCI, D.G. 1981b. Sensitivity theory for nonlinear systems. II. Extension to additional classes of responses. J. Math. Phys. 22, 12, 2803-2812.Google ScholarCross Ref
- CHRISTIANSON, B. 1992. Reverse accumulation and accurate rounding error estimates for Taylor series. Opt. Methods Softw. 1, 81-94.Google ScholarCross Ref
- GRIEWANK, A. 1990. Direct calculation of Newton steps without accumulating Jacobians. In Large-Scale Numerical Optimization, T. F. Coleman and Yuying Li, Eds. SIAM, Philadelphia, Pa., 115-137.Google Scholar
- GRIEWANK, A. 1992. Achieving logarithmic growth of temporal and spatial complexity in reverse automatic differentiation. Opt. Methods Softw. 1, 35-54.Google ScholarCross Ref
- GRIEWANK, A. AND REESE, S. 1991. On the calculation of Jacobian matrices by the Markowitz rule. In Automatic Differentiation of Algorithms: Theory, Implementation, and Application, A. Griewank and G. F. Corliss, Eds. SIAM, Philadelphia, Pa.Google Scholar
- HAIRER, E. AND WANNER, G. 1991. Solving Ordinary Differential Equations H. Springer- Verlag, Berlin. Google ScholarDigital Library
- HORWEDEL, J. E., WORLE~, B. A., OBLOW, E. M., AND PIN, F. G. 1988. GRESS version 1.0 users manual. Tech. Memo. ORNL/TM 10835, Oak Ridge National Laboratory, Oak Ridge, Tenn.Google Scholar
- KEDEM, G. 1980. Automatic differentiation of computer programs. ACM Trans. Math. Softw. 6, 2 (June), 150-165. Google ScholarDigital Library
- KUBOTA, K. 1991. PADRE2, a FORTRAN precompiler yielding error estimates and second derivatives. In Automatic Differentiation of Algorithms: Theory, Implementation, and Application, A. Griewank and G. F. Corliss, Eds. SIAM, Philadelphia, Pa, 251-262.Google Scholar
- LINNAINMAA, S. 1976. Taylor expansion of the accumulated rounding error. BIT (Nordisk Tidskrift for Informationsbehandling) 16, 1, 146-160.Google ScholarCross Ref
- OSTROVSKII, G. M., VOLIN, V. M., AND BORISOV, W. W. 1971. Ober die Berechnung von Ableitungen. Wissenschaftliche Zeitschrift der Technischen Hochschule far Chemie, Leuna- Merseburg 13, 4, 382-384.Google Scholar
- RALL, L.B. 1981. Automatic Differentiation: Techniques and Applications. Lecture Notes in Computer Science, vol. 120. Springer-Verlag, Berlin.Google ScholarCross Ref
- RALL, L.B. 1983. Differentiation and generation of Taylor coefficients in Pascal-SC. In A New Approach to Scientific Computation, U. W. Kulisch and W. L. Miranker, Eds. Academic Press, New York, 291-309. Google ScholarDigital Library
- SPEELPENNING, B. 1980. Compiling fast partial derivatives of functions given by algorithms. Ph.D. thesis, Dept. of Computer Science, Univ. of Illinois at Urbana-Champaign, Urbana- Champaign, Ill. Google ScholarDigital Library
- TALAGRAND, O. AND COURTIER, P. 1987. Variational assimilation of meteorological observations with the adjoint vorticity equation--Part I. Theory. Q. J. R. Meteorol. Soc. 113, 1311-1328.Google ScholarCross Ref
- WENGERT, R.E.1964. A simple automatic derivative evaluation program. Commun. ACM 7, 8, 463-464. Google ScholarDigital Library
- WERBOS, P. 1974. Beyond regression: New tools for prediction and analysis in the behavioral sciences. Ph.D thesis, Committee on Applied Mathematics, Harvard Univ., Cambridge, Mass. Nov.Google Scholar
Index Terms
- Algorithm 755: ADOL-C: a package for the automatic differentiation of algorithms written in C/C++
Recommendations
The complex-step derivative approximation
The complex-step derivative approximation and its application to numerical algorithms are presented. Improvements to the basic method are suggested that further increase its accuracy and robustness and unveil the connection to algorithmic ...
Second-order derivatives of the general-purpose finite element package SEPRAN via source transformation
Second-order derivatives are crucial ingredients to a variety of numerical methods. Often, they are difficult to get with numerical differentiation by divided differencing. Automatic differentiation provides an alternative by a program transformation ...
Efficient and accurate derivatives for a software process chain in airfoil shape optimization
When using a Newton-based numerical algorithm to optimize the shape of an airfoil with respect to certain design parameters, a crucial ingredient is the derivative of the objective function with respect to the design parameters. In large-scale ...
Comments