POOMA is a C++ framework for developing portable scientific applications for serial and parallel computers using high-level
physical abstractions. PETE is an general-purpose expression-template library employed by POOMA to implement expression evaluation.
This paper discusses generic programming techniques that are used to achieve flexibility and high performance in both POOMA
and PETE. POOMA’s array class factors the data representation and look-up into a generic engine concept. PETE’s expression
templates are used to build and operate efficiently on expressions. PETE is implemented using generic techniques that allow
it to adapt to a variety of client-class interfaces, and to provide a powerful and flexible compile-time expression-tree-traversal
mechanism.