Automatic Differentiation for Computational Finance

  • Christian H. Bischof
  • H. Martin Bücker
  • Bruno Lang
Part of the Applied Optimization book series (APOP, volume 74)


Automatic differentiation (AD) is a powerful technique allowing to compute derivatives of a function given by a (potentially very large) piece of code. The basic principles of AD and some available tools implementing this technology are reviewed. AD is superior to divided differences because AD-generated derivative values are free of approximation errors, and superior to symbolic differentiation because code of very high complexity can be handled, in contrast to computer algebra systems whose applicability is limited to rather simple functions. In addition, the cost for computing gradients of scalar-valued functions with either divided differences or symbolic differentiation grows linearly with the number of variables, whereas the so-called reverse mode of AD can compute such gradients at constant cost.


Gradients Forward and reverse mode Higher-order derivatives Operator overloading Code transformation AD tools 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. Abate, J., Bischof, C., Carle, A., and Roh, L. (1997). Algorithms and design for a second-order automatic differentiation module. In Proc. Int. Symposium on Symbolic and Algebraic Computing (ISSAC ‘87), pages 149–155, New York. Association of Computing Machinery.Google Scholar
  2. Berz, M., Bischof, C., Corliss, G., and Griewank, A. (1996). Computational Differentiation: Techniques, Applications, and Tools. SIAM, Philadelphia.Google Scholar
  3. Bischof, C., Carle, A., Corliss, G., Griewank, A., and Hovland, P. (1992). ADIFOR: Generating derivative codes from Fortran programs. Scientific Programming, 1 (1): 11–29.Google Scholar
  4. Bischof, C., Carle, A., Khademi, P., and Mauer, A. (1996). ADIFOR 2.0: Automatic differentiation of Fortran 77 programs. IEEE Computational Science & Engineering, 3 (3): 18–32.CrossRefGoogle Scholar
  5. Bischof, C., Roh, L., and Mauer, A. (1997). ADIC — An extensible automatic differentiation tool for ANSI-C. Software: Practice and Experience, 27 (12): 1427–1456.CrossRefGoogle Scholar
  6. Bischof, C. H. and Bäcker, H. M. (2000). Computing Derivatives of Computer Programs. In Grotendorst, J., editor, Modern Methods and Algorithms of Quantum Chemistry: Proceedings, Second Edition, volume 3 of NIC Series, pages 315–327. NIC Directors, Jülich.Google Scholar
  7. Carle, A. and Fagan, M. (2000). Private communication.Google Scholar
  8. Corliss, G., Faure, C., Griewank, A., Hascoët, L., and Naumann, U., editors (2002). Automatic Differentiation of Algorithms: From Simulation to Optimization. Springer. To appear.Google Scholar
  9. Giering, R. and Kaminski, T. (1998). Recipes for adjoint code construction. ACM Transactions on Mathematical Software, 24 (4): 437–474.CrossRefGoogle Scholar
  10. Griewank, A. (2000). Evaluating Derivatives —Principles and Techniques of Automatic Differentiation. SIAM, Philadelphia.Google Scholar
  11. Griewank, A. and Corliss, G. (1991). Automatic Differentiation of Algorithms. SIAM, Philadelphia.Google Scholar
  12. Griewank, A., Juedes, D., and Utke, J. (1996). ADOL-C, a package for the automatic differentiation of algorithms written in C/C++. ACM Transactions on Mathematical Software, 22 (2): 131–167.CrossRefGoogle Scholar
  13. Hovland, P. and Norris, B. (2001). A distributed application server for automatic differentiation. In Proc. 15th Int. Parallel and Distributed Processing Symposium,pages 1849–1856. IEEE.Google Scholar

Copyright information

© Springer Science+Business Media Dordrecht 2002

Authors and Affiliations

  • Christian H. Bischof
    • 1
  • H. Martin Bücker
    • 1
  • Bruno Lang
    • 1
  1. 1.Institute for Scientific ComputingAachen University of TechnologyAachenGermany

Personalised recommendations