Zum Inhalt springen

Matrix Template Library

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 11. Februar 2009 um 11:49 Uhr durch Yasmina Megzari (Diskussion | Beiträge). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Die Matrix Template Library (MTL) ist eine lineare Algebra-Bibliothek für C++.

Die MTL benutzt Template Programmierung, die die Codelänge erheblich verkürzt. Alle Matrizen sind als float, double, complex<float> oder complex<double> verfügbar. Die MTL unterstützt mehrere Implementierungen voll und schwach besetzter Matrizen. MTL2 wurde von Jeremy Siek und Andrew Lumsdaine entwickelt.

Die letzte Version, MTL4, wird von Peter Gottschling und Andrew Lumsdaine entwickelt. Sie enthält den größten Teil der MTL2-Funktionalität und erweitert diese um neue Optimierungstechniken, wie beispielsweise das Meta-Tuning, welche es unter anderem erlaubt, für Operationen auf Vektoren und Matrizen mit dynamischer Größe die Aufrollparameter im Funktionsaufruf festzulegen. Generische Anwendungen können in einer natürlichen Notation geschrieben werden, z.B.: v += A*q - w;, wobei die Bibliothek die geeigneten Algorithmen zur Compilezeit auswählt. Beispielsweise wird bei x*y zwischen Matrixvektorprodukt, Matrixmultiplikation, Multiplikation eines Vektors mit einem Skalarwert und vielen anderen unterschieden. Das Ziel ist, performanzrelevante technische Details in der Bibliothek zu kapseln und Forschern ein intuitives Interface anzubieten, so dass diese sich auf wissenschaftliche Algorithmen und Modelle konzentrieren können.