Generative Programming for Automatic Differentiation
M. Nehmeier. Recent Advances in Algorithmic Differentiation, volume 87 of Lecture Notes in Computational Science and Engineering, Springer Berlin / Heidelberg, 10.1007/978-3-642-30023-3_24.(2012)
Abstract
In this paper we present a concept for a C++ implementation of forward automatic differentiation of an arbitrary order using expression templates and template metaprogramming. In contrast to other expression template implementations, the expression tree in our implementation has only symbolic characteristics. The run-time code is then generated from the tree structure using template metaprogramming functions to apply the rules of symbolic differentiation onto the single operations at compile-time. This generic approach has the advantage that the template metaprogramming functions are replaceable which offers the opportunity to easily generate different specialized algorithms. We tested the functionality, correctness and performance of a prototype in different case studies for floating point as well as interval data types and compared it against other implementations.
%0 Book Section
%1 nehmeierAD2012
%A Nehmeier, Marco
%B Recent Advances in Algorithmic Differentiation
%D 2012
%E Forth, Shaun
%E Hovland, Paul
%E Phipps, Eric
%E Utke, Jean
%E Walther, Andrea
%E Barth, Timothy J.
%E Griebel, Michael
%E Keyes, David E.
%E Nieminen, Risto M.
%E Roose, Dirk
%E Schlick, Tamar
%I Springer Berlin / Heidelberg
%K info2 myown rari
%P 261-271
%T Generative Programming for Automatic Differentiation
%U http://dx.doi.org/10.1007/978-3-642-30023-3_24
%V 87
%X In this paper we present a concept for a C++ implementation of forward automatic differentiation of an arbitrary order using expression templates and template metaprogramming. In contrast to other expression template implementations, the expression tree in our implementation has only symbolic characteristics. The run-time code is then generated from the tree structure using template metaprogramming functions to apply the rules of symbolic differentiation onto the single operations at compile-time. This generic approach has the advantage that the template metaprogramming functions are replaceable which offers the opportunity to easily generate different specialized algorithms. We tested the functionality, correctness and performance of a prototype in different case studies for floating point as well as interval data types and compared it against other implementations.
%@ 978-3-642-30023-3
@incollection{nehmeierAD2012,
abstract = {In this paper we present a concept for a C++ implementation of forward automatic differentiation of an arbitrary order using expression templates and template metaprogramming. In contrast to other expression template implementations, the expression tree in our implementation has only symbolic characteristics. The run-time code is then generated from the tree structure using template metaprogramming functions to apply the rules of symbolic differentiation onto the single operations at compile-time. This generic approach has the advantage that the template metaprogramming functions are replaceable which offers the opportunity to easily generate different specialized algorithms. We tested the functionality, correctness and performance of a prototype in different case studies for floating point as well as interval data types and compared it against other implementations.},
added-at = {2012-08-17T15:06:49.000+0200},
affiliation = {Institute of Computer Science, University of Würzburg, Am Hubland, D 97074 Würzburg, Germany},
author = {Nehmeier, Marco},
biburl = {https://www.bibsonomy.org/bibtex/270dcb78e433850d8cb9da5ae59500c6a/info2},
booktitle = {Recent Advances in Algorithmic Differentiation},
editor = {Forth, Shaun and Hovland, Paul and Phipps, Eric and Utke, Jean and Walther, Andrea and Barth, Timothy J. and Griebel, Michael and Keyes, David E. and Nieminen, Risto M. and Roose, Dirk and Schlick, Tamar},
interhash = {8f65d1700c7a2b7b0d5caf5185349c59},
intrahash = {70dcb78e433850d8cb9da5ae59500c6a},
isbn = {978-3-642-30023-3},
keyword = {Mathematics and Statistics},
keywords = {info2 myown rari},
note = {10.1007/978-3-642-30023-3_24},
pages = {261-271},
publisher = {Springer Berlin / Heidelberg},
series = {Lecture Notes in Computational Science and Engineering},
timestamp = {2012-08-17T15:19:02.000+0200},
title = {Generative Programming for Automatic Differentiation},
url = {http://dx.doi.org/10.1007/978-3-642-30023-3_24},
volume = 87,
year = 2012
}