A domain specific embedded language in C++ for automatic differentiation, projection, integration and variational formulations

  • Authors:
  • Christophe Prud'homme

  • Affiliations:
  • Université Joseph Fourier, LMAG-LMC, Rm 55, 51 rue des Mathématiques, BP53X 38041 Grenoble Cedex 9, France. E-mail: christophe.prudhomme@ujf-grenoble.fr

  • Venue:
  • Scientific Programming - Parallel/High-Performance Object-Oriented Scientific Computing (POOSC '05), Glasgow, UK, 25 July 2005
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

In this article, we present a domain specific embedded language in C++ that can be used in various contexts such as numerical projection onto a functional space, numerical integration, variational formulations and automatic differentiation. Albeit these tools operate in different ways, the language overcomes this difficulty by decoupling expression constructions from evaluation. The language is implemented using expression templates and meta-programming techniques and uses various Boost libraries. The language is exercised on a number of non-trivial examples and a benchmark presents the performance behavior on a few test problems.