Matrix Template Library

Matrix Template Library
Matrix Template Librery 4
Mtl4 Logo Transparent.png
Desarrollador
SimuNova
http://www.simunova.com/mtl4
Información general
Género Software Cientifico
Programado en C++
Sistema operativo Linux, Unix, Mac OS X, Windows
Plataforma x86/AMD64
Licencia Boost Software License
Idiomas Inglés, Alemán
En español ?



La Matrix Template Library (MTL) es una biblioteca de álgebra lineal para programas en C++.

La MTL usa programación con plantillas, lo cual reduce considerablemente la extensión del código. Todas las matrices están 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ás reciente versión 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écnicas de optimización tales como el "meta-tuning" (es posible especificar los detalles del "loop unrolling" para matrices y vectores de dimensión dinámica arbitraria en la llamada de la función). Las aplicaciones genéricas pueden ser introducidas en notación natural, v.g. v += A*q - w;, de forma que la biblioteca selecciona por sí misma el algoritmo apropiado: multiplicación matriz-vector, producto de matrices, producto escalar de vectores, etc. El objetivo es ofrecer una interfaz científica intuitiva, mientras que los detalles técnicos quedan encapsulados dentro de la biblioteca.

Se puede clarificar la idea anterior del encapsulamiento usando el siguiente esquema gráfico de MTL4:


Esquema de encapsulamiento


Como se puede apreciar en la parte izquierda del esquema, usando la librería MTL4, ese código se hace transparente al programador, ya que podrá usar una sintaxis más natural, como lo que se ve en la parte derecha.


MTL4

En la Matrix Template Library 4 s trató de conseguir una notación matemática natural (ver esquema superior) sin sacrificar desempeño, pudiendos escribir una expresión como por ejemplo x = y * z y la biblioteca llevará a cabo automáticamente la operación. Algunas operaciones, como el uso del producto matriz está realizado mediante el uso de otras bibliotecas por ejemplo Blas. En paralelo, todas las operaciones que se describen se realizaron también en C++, para que de esta forma la biblioteca MTL4 puede ser utilizado sin BLAS y no limitando su uso. Para abreviar las aplicaciones, en general se combina con el máximo rendimiento disponible.

Se desarrollaron nuevas técnicas que hacen posible:

   * Utilización de datos de tamaño dinámico o bien el usuario puede definir los tamaños de bloques y datos;
   * La combinación de vectores de múltiples tareas en una sola declaración (y más importante realizarlas en un solo loop de código);
   * Almacenamiento de las matrices de forma recursiva,  y también manejar una notación interna, transparente al programador cosa nunca antes realizada;
   * Realización de operaciones matriciales en forma con y sin recursividad;
   * Completar matrices dispersas y comprimirlas de manera eficiente, con una notación transparente al programador;


MTL 4 fue escrita usando ANSI C++ y puede se compilada usando cualquier plataforma con un complidor de ANSI C++. Como por ejemplo:

       * Linux
             o g++ 4.1.3
             o g++ 4.2.4
             o g++ 4.3.4
             o g++ 4.4.3
             o g++ 4.5.1
             o icc 9.1
             o icc 10.0
             o icc 10.1
             o icc 11.0
             o icc 11.1


       * Macintosh
             o g++ desde 4.0.1 (los mismos como su Linux)


       * Windows
             o VC 8.0 de Visual Studio 2005 
             o VC 9.0 de Visual Studio 2008
             o VC 10.0 de Visual Studio 2010



Para mayor información se pueden visitar los enlaces externos que están a continuación



Enlaces externos


Wikimedia foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Mira otros diccionarios:

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

  • Matrix Template Library — Betriebssystem Linux, Unix, Mac OS X, Windows Programmier­sprache C++ Kategorie Wissenschaftliche Programmbibliothek Lizenz …   Deutsch Wikipedia

  • 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

Compartir el artículo y extractos

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