skip to main content

Algorithm 755: ADOL-C: a package for the automatic differentiation of algorithms written in C/C++

Published:01 June 1996Publication History
Skip Abstract Section

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.

Skip Supplemental Material Section

Supplemental Material

References

  1. 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 ScholarGoogle Scholar
  2. 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 ScholarGoogle Scholar
  3. 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 ScholarGoogle Scholar
  4. CACUCI, D. G. 1981a. Sensitivity theory for nonlinear systems. I. Nonlinear functional analysis approach. J. Math. Phys. 22, 12, 2794-2802.Google ScholarGoogle ScholarCross RefCross Ref
  5. CACUCI, D.G. 1981b. Sensitivity theory for nonlinear systems. II. Extension to additional classes of responses. J. Math. Phys. 22, 12, 2803-2812.Google ScholarGoogle ScholarCross RefCross Ref
  6. CHRISTIANSON, B. 1992. Reverse accumulation and accurate rounding error estimates for Taylor series. Opt. Methods Softw. 1, 81-94.Google ScholarGoogle ScholarCross RefCross Ref
  7. 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 ScholarGoogle Scholar
  8. GRIEWANK, A. 1992. Achieving logarithmic growth of temporal and spatial complexity in reverse automatic differentiation. Opt. Methods Softw. 1, 35-54.Google ScholarGoogle ScholarCross RefCross Ref
  9. 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 ScholarGoogle Scholar
  10. HAIRER, E. AND WANNER, G. 1991. Solving Ordinary Differential Equations H. Springer- Verlag, Berlin. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. 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 ScholarGoogle Scholar
  12. KEDEM, G. 1980. Automatic differentiation of computer programs. ACM Trans. Math. Softw. 6, 2 (June), 150-165. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. 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 ScholarGoogle Scholar
  14. LINNAINMAA, S. 1976. Taylor expansion of the accumulated rounding error. BIT (Nordisk Tidskrift for Informationsbehandling) 16, 1, 146-160.Google ScholarGoogle ScholarCross RefCross Ref
  15. 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 ScholarGoogle Scholar
  16. RALL, L.B. 1981. Automatic Differentiation: Techniques and Applications. Lecture Notes in Computer Science, vol. 120. Springer-Verlag, Berlin.Google ScholarGoogle ScholarCross RefCross Ref
  17. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  18. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  19. 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 ScholarGoogle ScholarCross RefCross Ref
  20. WENGERT, R.E.1964. A simple automatic derivative evaluation program. Commun. ACM 7, 8, 463-464. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. 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 ScholarGoogle Scholar

Index Terms

  1. Algorithm 755: ADOL-C: a package for the automatic differentiation of algorithms written in C/C++

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in

          Full Access

          • Published in

            cover image ACM Transactions on Mathematical Software
            ACM Transactions on Mathematical Software  Volume 22, Issue 2
            June 1996
            128 pages
            ISSN:0098-3500
            EISSN:1557-7295
            DOI:10.1145/229473
            • Editor:
            • Ronald Boisvert
            Issue’s Table of Contents

            Copyright © 1996 ACM

            Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 1 June 1996
            Published in toms Volume 22, Issue 2

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • article

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader