http://www.lsc.nd.edu/research/mtl/intro.php3 The Matrix Template Library (MTL) has had two fundamental goals from the time of its conception:To be a comprehensive, elegant, well-engineered, high-quality library of re-usable components for scientific computingTo offer vendor-tuned levels of performance At first, this might seem an impossible task. After all, traditionally, abstraction has been considered to be the enemy of performance. The common wisdom in scientific computing has been that high levels of computational performance could only be achieved by using Fortran. The MTL was able to definitively achieve its two fundamental goals through the use of an important new programming paradigm: generic programming. Generic programming allows for a compact and concise implementation of MTL as a component library for scientific computing (the first goal). At the same time, performance optimizations are expressed within MTL in a generic fashion, resulting in a portable high-performance library completely written in a high-level language (in this case, C++). No escapes to Fortran, assembly, or external libraries are required.
http://www.lsc.nd.edu/research/mtl/intro.php3
The Matrix Template Library (MTL) has had two fundamental goals from the
time of its conception:To be a comprehensive, elegant, well-engineered, high-quality library of re-usable components for scientific computingTo offer vendor-tuned levels of performance
At first, this might seem an impossible task. After all,
traditionally, abstraction has been considered to be the enemy of
performance. The common wisdom in scientific computing has been that
high levels of computational performance could only be achieved by
using Fortran. The MTL was able to definitively achieve its two fundamental goals through the use of an important new programming paradigm:
generic programming. Generic
programming allows for a compact and concise implementation of MTL
as a component library for scientific computing (the first goal).
At the same time, performance optimizations are expressed
within MTL in a generic fashion, resulting in a
portable high-performance library completely written in a high-level
language (in this case, C++). No escapes to Fortran, assembly, or
external libraries are required.