@info2

Generative Programming for Automatic Differentiation

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

Links and resources

Tags

community

  • @se-group
  • @nehmeier
  • @info2
@info2's tags highlighted