Matrix Template Library

Matrix Template Library
Matrix Template Library
Operating system Linux, Unix, Mac OS X, Windows
Available in C++
Type Scientific software library
License Boost Software License
Website http://www.mtl4.org

The Matrix Template Library (MTL) is a linear algebra library for C++ programs.

The MTL uses template programming, which considerably reduces the code length. All matrices and vectors are available in all classical numerical formats: float, double, complex<float> or complex<double>.

Furthermore, generic programming allows the usage of arbitrary types as long as they provide the necessary operations. For instance one can use arbitrary integer formats (e.g. unsigned short), types for interval arithmetic (e.g. boost::interval from the Boost C++ Libraries, quaternions (e.g. boost::quaternion), types of higher precision (e.g. GNU Multi-Precision Library) and appropriate user-defined types.

The MTL supports several implementations of dense matrices and sparse matrices. MTL2 has been developed by Jeremy Siek and Andrew Lumsdaine.[1]

The latest version, MTL4, is developed by Peter Gottschling and Andrew Lumsdaine. It contains most of MTL2's functionality and adds new optimization techniques as meta-tuning, e.g. loop unrolling of dynamically sized containers can be specified in the function call. Platform-independent performance scalability is reached by recursive data structures and algorithms.[2]

Generic applications can be written in a natural notation, e.g. v += A*q - w;, while the library dispatches to the appropriate algorithms: matrix vector products vs. matrix products vs. vector scalar products etcetera. The goal is to encapsulate performance issues inside the library and provide scientists an intuitive interface. MTL4 is used in different finite element and finite volume packages, e.g. the FEniCS Project.[3]

References

See also

  • Boost uBLAS, an alternative linear algebra library for C++

External links


Wikimedia Foundation. 2010.

Игры ⚽ Нужен реферат?

Look at other dictionaries:

  • Matrix Template Library — Betriebssystem Linux, Unix, Mac OS X, Windows Programmier­sprache C++ Kategorie Wissenschaftliche Programmbibliothek Lizenz …   Deutsch 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”