Skip to main content

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

Summary

We present the first version of the tool TAPENADE that can differentiate C programs. The architecture of TAPENADE was designed from the start to be language independent. We describe how this choice made adaption to C easier. In principle, it needed only a new front-end and back-end for C. However we encountered several problems, in particular related to declarations style, include files, parameter-passing mechanism, and extensive use of pointers. We describe how we addressed these problems, and how the resulting improvements also benefits to differentiation of Fortran programs.

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

Access this chapter

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

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Aho, A., Sethi, R., Ullman, J.: Compilers: Principles, Techniques and Tools. Addison-Wesley (1986)

    Google Scholar 

  2. Bischof, C., Roh, L., Mauer, A.: ADIC — An Extensible Automatic Differentiation Tool for ANSI-C. Software–Practice and Experience 27(12), 1427–1456 (1997). URL http://www-fp.mcs.anl.gov/division/software

  3. Bischof, C.H., Hovland, P.D., Norris, B.: Implementation of automatic differentiation tools. In: Proceedings of the 2002 ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation (PEPM’02), pp. 98–107. ACM Press, New York, NY, USA (2002)

    Chapter  Google Scholar 

  4. British Standards Institute, BS ISO/IEC 9899:1999: The C Standard, Incorporating Technical Corrigendum 1. John Wiley & Sons, Ltd (2003)

    Google Scholar 

  5. Griewank, A.: Evaluating Derivatives: Principles and Techniques of Algorithmic Differentiation. SIAM, Frontiers in Applied Mathematics (2000)

    Google Scholar 

  6. 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 

  7. Hascoët, L., Pascual, V.: TAPENADE 2.1 User’s Guide. Rapport technique 300, INRIA, Sophia Antipolis (2004). URL http://www.inria.fr/rrrt/rt-0300.html

  8. Kernighan, B., Ritchie, D.: The C Programming Language. Prentice Hall Software Series (1988)

    Google Scholar 

  9. Muchnick, S.: Advanced Compiler Design and Implementation. Morgan Kaufmann Publishers (1997)

    Google Scholar 

  10. Parr, T.: The Definitive ANTLR Reference: Building Domain-Specific Languages. Pragmatic Bookshelf (2007)

    Google Scholar 

  11. Pascual, V., Hascoët, L.: Extension of TAPENADE toward Fortran 95. In: H.M. Bücker, G. Corliss, P. Hovland, U. Naumann, B. Norris (eds.) Automatic Differentiation: Applications, Theory, and Implementations, Lecture Notes in Computational Science and Engineering, pp. 171–179. Springer (2005)

    Google Scholar 

  12. TAC++: http://www.fastopt.com/

  13. Utke, J., Naumann, U., Fagan, M., Tallent, N., Strout, M., Heimbach, P., Hill, C., Wunsch, C.: OpenAD/F: A modular, open-source tool for automatic differentiation of Fortran codes. ACM Transactions on Mathematical Software 34(4) (2008). To appear

    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

Pascual, V., Hascoët, L. (2008). TAPENADE for C. 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_18

Download citation

Publish with us

Policies and ethics