Matrix Template Library
La Matrix Template Library (MTL) es una librer´ia de ´algebra lineal para programas en C++.
La MTL usa programaci´on con plantillas, lo cual reduce considerablemente la extensi´on del c´odigo. Todas las matrices est´an disponibles para los tipos float
, double
, complex<float>
y complex<double>
. La MTL soporta diversas implementaciones de matrices densas y dispersas. MTL2 fue desarrollada por Jeremy Siek y Andrew Lumsdaine.
La m´as reciente versi´on se denomina MTL4 y ha sido desarrollada por Peter Gottschling y Andrew Lumsdaine. MTL4 contiene la mayor parte de las funcionalidades de MTL2, e incluye nuevas t´ecnicas de optimizaci´on tales como el "meta-tuning" (es posible especificar los detalles del "loop unrolling" para matrices y vectores de dimensi´on din´amica arbitraria en la llamada de la funci´on). Las aplicaciones gen´ericas pueden ser introducidas en notaci´on natural, v.g. v += A*q - w;
, de forma que la librer´ia selecciona por s´i misma el algoritmo apropiado: multiplicaci´on matriz-vector, producto de matrices, producto escalar de vectores, etc. El objetivo es ofrecer una interfaz cient´ifica intuitiva, mientras que los detalles t´ecnicos quedan encapsulados dentro de la librer´ia.