Skip to main content

Development and First Applications of TAC++

  • Conference paper

Part of the book series: Lecture Notes in Computational Science and Engineering ((LNCSE,volume 64))

Summary

The paper describes the development of the software tool Transformation of Algorithms in C++ (TAC++) for automatic differentiation (AD) of C(++) codes by source-to-source translation. We have transferred to TAC++ a subset of the algorithms from its well-established Fortran equivalent, Transformation of Algorithms in Fortran (TAF). TAC++ features forward and reverse as well as scalar and vector modes of AD. Efficient higher order derivative code is generated by multiple application of TAC++. High performance of the generated derivate code is demonstrated for five examples from application fields covering remote sensing, computer vision, computational finance, and aeronautics. For instance, the run time of the adjoints for simultaneous evaluation of the function and its gradient is between 1.9 and 3.9 times slower than that of the respective function codes. Options for further enhancement are discussed.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   139.00
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   179.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Bendtsen, C., Stauning, O.: FADBAD, a flexible C++ package for automatic differentiation. Technical Report IMM–REP–1996–17, Department of Mathematical Modelling, Technical University of Denmark, Lyngby, Denmark (1996)

    Google Scholar 

  2. Bischof, C.H., Carle, A., Khademi, P., Mauer, A.: ADIFOR 2.0: Automatic differentiation of Fortran 77 programs. IEEE Computational Science & Engineering 3(3), 18–32 (1996)

    Article  Google Scholar 

  3. Bischof, C.H., Roh, L., Mauer, A.: ADIC — An extensible automatic differentiation tool for ANSI-C. Software–Practice and Experience 27(12), 1427–1456 (1997)

    Article  Google Scholar 

  4. Brace, A., Gatarek, D., Musiela, M.: The Market Model of Interest Rate Dynamics. Mathematical Finance 7(2), 127–155 (1997)

    Article  MATH  MathSciNet  Google Scholar 

  5. Cusdin, P., Müller, J.D.: EULSOLDO. Tech. Rep. QUB-SAE-03-02, QUB School of Aeronautical Engineering (2003)

    Google Scholar 

  6. Cusdin, P., Müller, J.D.: Improving the performance of code generated by automatic differentiation. Tech. Rep. QUB-SAE-03-04, QUB School of Aeronautical Engineering (2003)

    Google Scholar 

  7. Faure, C.: Adjoining strategies for multi-layered programs. Optimisation Methods and Software 17(1), 129–164 (2002)

    Article  MATH  MathSciNet  Google Scholar 

  8. Feldman, S.I., Weinberger, P.J.: A portable Fortran 77 compiler. In: UNIX Vol. II: research system (10th ed.), pp. 311–323. W. B. Saunders Company (1990)

    Google Scholar 

  9. Gerhold, T., Friedrich, O., Evans, J., Galle, M.: Calculation of Complex Three-Dimensional Configurations Employing the DLR-TAU-Code. AIAA Paper 167 (1997)

    Google Scholar 

  10. Giering, R., Kaminski, T.: Recipes for Adjoint Code Construction. ACM Trans. Math. Software 24(4), 437–474 (1998)

    Article  MATH  Google Scholar 

  11. Giering, R., Kaminski, T.: Recomputations in reverse mode AD. In: G. Corliss, A. Griewank, C. Fauré, L. Hascoet, U. Naumann (eds.) Automatic Differentiation of Algorithms: From Simulation to Optimization, chap. 33, pp. 283–291. Springer Verlag, Heidelberg (2002)

    Google Scholar 

  12. Giering, R., Kaminski, T., Slawig, T.: Generating Efficient Derivative Code with TAF: Adjoint and Tangent Linear Euler Flow Around an Airfoil. Future Generation Computer Systems 21(8), 1345–1355 (2005)

    Article  Google Scholar 

  13. Giles, M.: Monte Carlo evaluation of sensitivities in computational finance. In: E.A. Lipitakis (ed.) HERCMA 2007 (2007)

    Google Scholar 

  14. Giles, M., Glasserman, P.: Smoking adjoints: fast Monte Carlo Greeks. Risk pp. 92–96 (2006)

    Google Scholar 

  15. Griewank, A.: On automatic differentiation. In: M. Iri, K. Tanabe (eds.) Mathematical Programming: Recent Developments and Applications, pp. 83–108. Kluwer Academic Publishers, Dordrecht (1989)

    Google Scholar 

  16. Griewank, A., Juedes, D., Utke, J.: ADOL–C, a package for the automatic differentiation of algorithms written in C/C++. ACM Trans. Math. Software 22(2), 131–167 (1996)

    Article  MATH  Google Scholar 

  17. Hascoët, L., Naumann, U., Pascual, V.: TBR analysis in reverse-mode automatic differentiation. Future Generation Computer Systems 21(8), 1401–1417 (2005)

    Article  Google Scholar 

  18. Lavergne, T., Voßbeck, M., Pinty, B., Kaminski, T., Giering, R.: Evaluation of the two-stream inversion package. EUR 22467 EN, European Commission - DG Joint Research Centre, Institute for Environment and Sustainability (2006)

    Google Scholar 

  19. Pinty, B., Lavergne, T., Dickinson, R., Widlowski, J., Gobron, N., Verstraete, M.: Simplifying the interaction of land surfaces with radiation for relating remote sensing products to climate models. J. Geophys. Res (2006)

    Google Scholar 

  20. Pinty, B., Lavergne, T., Kaminski, T., Aussedat, O., Giering, R., Gobron, N., Taberner, M., Verstraete, M.M., Voßbeck, M., Widlowski, J.L.: Partitioning the solar radiant fluxes in forest canopies in the presence of snow. J. Geophys. Res. 113 (2008)

    Google Scholar 

  21. Pinty, B., Lavergne, T., Voßbeck, M., Kaminski, T., Aussedat, O., Giering, R., Gobron, N., Taberner, M., Verstraete, M.M., Widlowski, J.L.: Retrieving surface parameters for climate models from MODIS-MISR albedo products. J. Geophys. Res. 112 (2007)

    Google Scholar 

  22. Pock, T., Pock, M., Bischof, H.: Algorithmic differentiation: Application to variational problems in computer vision. IEEE Transactions on Pattern Analysis and Machine Intelligence 29(7), 1180–1193 (2007)

    Article  Google Scholar 

  23. Pryce, J.D., Reid, J.K.: AD01, a Fortran 90 code for automatic differentiation. Tech. Rep. RAL-TR-1998-057, Rutherford Appleton Laboratory, Chilton, Didcot, Oxfordshire, OX11 OQX, England (1998)

    Google Scholar 

  24. Roe, P.L.: Approximate Riemann solvers, parameter vectors, and difference schemes. J. Comput. Phys. 135(2), 250–258 (1997)

    Article  MATH  MathSciNet  Google Scholar 

  25. Tadjouddine, M., Forth, S.A., Pryce, J.D.: AD tools and prospects for optimal AD in CFD flux Jacobian calculations. In: G. Corliss, C. Faure, A. Griewank, L. Hascoët, U. Naumann (eds.) Automatic Differentiation of Algorithms: From Simulation to Optimization, Computer and Information Science, chap. 30, pp. 255–261. Springer, New York, NY (2002)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2008 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Voßbeck, M., Giering, R., Kaminski, T. (2008). Development and First Applications of TAC++. In: Bischof, C.H., Bücker, H.M., Hovland, P., Naumann, U., Utke, J. (eds) Advances in Automatic Differentiation. Lecture Notes in Computational Science and Engineering, vol 64. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-68942-3_17

Download citation

Publish with us

Policies and ethics