Matrix Template Library
La Matrix Template Library (MTL) est une bibliothèque d'algèbre linéaire pour les programmes C++.
La MTL utilise la programmation générique, qui réduit considérablement la longueur des codes. Toutes les matrices sont disponibles en, double, complex<float> or complex<double>. La MTL soutient plusieurs implémentations de matrices denses et de matrices creuses. MTL2 a éte développé dans l'université de l'Indiana par Jeremy Siek et Andrew Lumsdaine.
La dernière version nommée MTL4, est actuellement développée par Peter Gottschling et Andrew Lumsdaine. Elle contient la majorité des fonctionalités de MTL2 et ajoute des nouvelles techniques d'optimisation comme meta-tuning, par exemple le déroulement de la boucle de conteneurs dynamiquement formatés qui peuvent être spécifiés dans la fonction d'appel. Les applications génériques peuvent être écrites en notation naturelle e.g. v += A*q - w;,en même temps, la bibliothèque sélectionne les algorithmes appropriés: matrix vector products vs. matrix products vs. vector scalar products etc... Le but est d'intégrer les problèmes de performance dans la bibliothèque et de fournir aux scientifiques une interface intuitive.