The Matrix Template Library is a C++ class library for basic linear
algebra. The MTL is designed for high-performance while at the same
time taking advantage of the generic programming paradigm (ala the
STL) to allow much greater flexibility and breadth of
functionality. Many new and advanced programming techniques were used
in the construction of this library.
The MTL is a low level library in the sense that the user must be
conscious of the matrix type being used, and that all computationally
expensive operations are explicit. The MTL is not a C++
Matlab. Nevertheless, the interface is designed to be simple and easy
to use.
The matrix types provided include compressed sparse row/column,
banded, packed, diagonal (and tridiagonal), envelope, array of
pointers, and of course dense matrices. All matrix types share a
common and easy to use interface.
The algorithms consist of the traditional basic linear algebra
routines (from the BLAS level-1 to 3) which includes matrix and vector
arithmetic as well as operations such as backward substitution and
norm calculations.