Biblioteca de șabloane Matrix

Biblioteca de șabloane Matrix
Tip de Software de matematică
Scris in C++
Sistem de operare Linux , Unix , Mac OS X , Windows
Limbi de interfață C++
Licență Boost Software License
Site-ul web mtl4.org

Matrix Template Library (MTL) este o bibliotecă de algebră liniară pentru programele C++ .

MTL folosește șabloane C++ , care reduc foarte mult codul programului. Toate matricele și vectorii sunt validi în toate formatele de numere clasice: float, double, complex <float>sau complex <double>.

Mai mult, programarea generică permite tipuri arbitrare atâta timp cât efectuează operațiunile necesare. De exemplu, puteți utiliza formate numerice arbitrare (de exemplu, unsigned short), tipuri pentru aritmetica intervalului (de exemplu, boost::interval din biblioteca Boost , cuaternioni (de exemplu, boost::quaternion), tipuri de înaltă precizie (de exemplu , GNU Multi-Precision Library ) și tipurile corespunzătoare definite de utilizator.

MTL acceptă diverse implementări ale matricei dense și ale matricei rare . MTL2 a fost dezvoltat de Jeremy Siek și Andrew Lumsdaine. [unu]

Cea mai recentă versiune, MTL4, a fost dezvoltată de Peter Gottschling și Andrew Lumsdaine. Conține majoritatea caracteristicilor MTL2 și este, de asemenea, îmbunătățit cu noi tehnici de optimizare, cum ar fi meta-tuning, de exemplu, derularea unei bucle de container de dimensiuni dinamice poate fi definită într-un apel de funcție. Scalabilitatea performanței independentă de platformă este obținută prin structura de date recursive și algoritmi recursivi. [2]

Aplicațiile universale pot fi scrise în notație nativă (codificare), cum ar fi v += A*q - w; în timp ce biblioteca însăși invocă algoritmii corespunzători: înmulțirea matrice-vector sau înmulțirea matrice sau multiplicarea vector-scalar, etc. Scopul este de a ascunde problemele de implementare în bibliotecă și de a oferi o interfață ușor de utilizat. MTL4 este utilizat în diverse pachete, cum ar fi Metoda Elementelor Finite și Metoda Volumului Finit , cum ar fi Proiectul FEniCS . [3]

Note

  1. JG Siek și A. Lumsdaine: Biblioteca de șabloane Matrix: O abordare de programare generică a algebrei liniare numerice de înaltă performanță . ISCOPE 1998. Arhivat din original la 12 mai 2008.
  2. P. Gottschling, DS Wise și MD Adams: Algoritmi matrice transparente de reprezentare cu performanță scalabilă. ICS '07: Proc. 21 stagiar. conf. despre Supercomputing, pp. 116-125, ACM Press, New York, 2007. Arhivat din original la 20 iulie 2008.
  3. Pagina web Dolfin din cadrul proiectului FEniCS.  (link indisponibil)

Vezi și

Link -uri