Christoph Pflaum, Universitat Erlangen

Advanced Expression Template Concepts

Abstract: One important difficulty concerning the implementation of numerical software for finite elements is the clear separation of the code in different modules which interact by clearly defined interfaces. In order to solve this problem, it is necessary to describe these interfaces by a mathematical language. To this end, it is very helpful to apply operator overloading in C++ and expression templates.

The first expression template implementations were based on non-trivial template constructions such that often programmers did not use expression templates for the implementation of mathematical software. Additionally, there exist applications, where the original expression template implementation does not lead to optimal performance. To avoid these problems we present expression template implementations which are more simple to implement and lead to an optimal performance.

Applications to different finite elements codes will be presented.