A Domain Specific Embedded Language in C++ for Automatic Differentiation, Projection, Integration and Variational Formulations
Author(s) -
Christophe Prud'Homme
Publication year - 2006
Publication title -
scientific programming
Language(s) - English
Resource type - Journals
eISSN - 1875-919X
pISSN - 1058-9244
DOI - 10.1155/2006/150736
Subject(s) - decoupling (probability) , computer science , benchmark (surveying) , domain (mathematical analysis) , domain specific language , projection (relational algebra) , expression (computer science) , automatic differentiation , numerical integration , template , algorithm , programming language , artificial intelligence , mathematics , control engineering , engineering , mathematical analysis , geodesy , computation , geography
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
Accelerating Research
Robert Robinson Avenue,
Oxford Science Park, Oxford
OX4 4GP, United Kingdom
Address
John Eccles HouseRobert Robinson Avenue,
Oxford Science Park, Oxford
OX4 4GP, United Kingdom