Matrix Template Library

Matrix Template Library
Matrix Template Library
Betriebssystem Linux, Unix, Mac OS X, Windows
Programmier­sprache C++
Kategorie Wissenschaftliche Programmbibliothek
Lizenz Boost Software License
http://www.mtl4.org

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 und Vektoren sind in den klassischen numerischen Formaten float, double, complex<float> oder complex<double> verfügbar. Die generische Programmierung erlaubt darüber hinaus die Verwendung beliebiger Typen, die über die notwendigen Operationen verfügen. Es können auch beliebige Integerformate (z. B. unsigned short), Typen für Intervallarithmetik (z. B. boost::interval aus der Bibliothekskollektion Boost), Quaternionen (z. B. boost::quaternion), Typen höherer Präzision (z. B. GNU Multiple Precision Arithmetic Library) und geeignete nutzerdefinierte Typen verwendet werden. Die MTL unterstützt mehrere Implementierungen voll und schwach besetzter Matrizen. MTL2 wurde von Jeremy Siek und Andrew Lumsdaine entwickelt.[1]

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, welches es unter anderem erlaubt, für Operationen auf Vektoren und Matrizen mit dynamischer Größe die Aufrollparameter im Funktionsaufruf festzulegen. Plattformunabhängige Skalierbarkeit der Performanz wird durch rekursive Datenstrukturen und Algorithmen erreicht.[2] 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.

Referenzen

  1. Jeremy G. Siek, Andrew Lumsdaine: The Matrix Template Library: A Generic Programming Approach to High Performance Numerical Linear Algebra. ISCOPE, 1998.
  2. Peter Gottschling, David S. Wise, Michael D. Adams: Representation-transparent matrix algorithms with scalable performance. In: Proc. 21st Annual Int. Conf. on Supercomputing. ACM Press, New York 2007, S. 116–125.

Weblinks


Wikimedia Foundation.

Игры ⚽ Поможем написать курсовую

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Matrix Template Library — Operating system Linux, Unix, Mac OS X, Windows Available in C++ Type Scientific software library Lice …   Wikipedia

  • Matrix Template Library — Matrix Template Librery 4 Desarrollador SimuNova http://www.simunova.com/mtl4 …   Wikipedia Español

  • Matrix Template Library — Тип Математическое ПО Операционная система Linux, Unix, Mac OS X, Windows Языки интерфейса C++ Лицензия Boost Software License …   Википедия

  • 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 et vecteurs sont disponibles dans… …   Wikipédia en Français

  • Iterative Template Library — The Iterative Template Library (ITL) is a generic component library that provides iterative methods for solving linear systems. ITL also provides numerous preconditioners which is for MTL. The ITL was written at the Open Systems Lab of Indiana… …   Wikipedia

  • Template Numerical Toolkit — The Template Numerical Toolkit (or TNT) is a software library for manipulating vectors and matrices in C++ created by the U.S. National Institute of Standards and Technology. TNT provides the fundamental linear algebra operations (for example,… …   Wikipedia

  • Monte Carlo Machine Learning Library (MCMLL) — The Monte Carlo Machine Learning Library (MCMLL) is an open source C++ template library which already relies on some C++0x specs. MCMLL is licensed under the GNU GPL. It is developed under the 64 bit Linux OS. MCMLL should be usable on other… …   Wikipedia

  • DNA-encoded chemical library — DNA encoded chemical libraries (DEL) are a new technology for the synthesis and screening of collections of chemical compounds of unprecedented size and quality. DEL represents an advance in medicinal chemistry which bridges the fields of… …   Wikipedia

  • С++ — См. также: Си (язык программирования) C++ Семантика: мультипарадигмальный: объектно ориентированное, обобщённое, процедурное, метапрограммирование Тип исполнения: компилируемый Появился в: 1985 г. Автор(ы): Бьёрн Страуструп …   Википедия

  • Basic Linear Algebra Subprograms — BLAS Betriebssystem plattformunabhängig Kategorie Programmbibliothek für: Lineare Algebra www.netlib.org/blas Basic Linear Algebra Subprograms (BLAS) bezeichnet eine Softwareb …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”