Matrix-mallikirjasto

Matrix-mallikirjasto
Tyyppi Matemaattinen ohjelmisto
Sisään kirjoitettu C++
Käyttöjärjestelmä Linux , Unix , Mac OS X , Windows
Käyttöliittymäkielet C++
Lisenssi Boost Software License
Verkkosivusto mtl4.org

Matrix Template Library (MTL) on lineaarinen algebrakirjasto C++- ohjelmille .

MTL käyttää C++-malleja , jotka vähentävät huomattavasti ohjelmakoodia. Kaikki matriisit ja vektorit ovat voimassa kaikissa klassisissa lukumuodoissa: float, double, complex <float>tai complex <double>.

Lisäksi yleinen ohjelmointi sallii mielivaltaiset tyypit, kunhan ne suorittavat tarvittavat toiminnot. Voit esimerkiksi käyttää mielivaltaisia ​​numeerisia muotoja (esim. unsigned short), intervalliaritmeettisia tyyppejä (esimerkiksi boost::interval Boost-kirjastosta , kvaternioita (esimerkiksi boost::quaternion), erittäin tarkkoja tyyppejä (esim. , GNU Multi-Precision Library ) ja vastaavat käyttäjän määrittämät tyypit.

MTL tukee erilaisia ​​tiheän matriisin ja harvan matriisin toteutuksia . MTL2:n ovat kehittäneet Jeremy Siek ja Andrew Lumsdaine. [yksi]

Uusimman version, MTL4, ovat kehittäneet Peter Gottschling ja Andrew Lumsdaine. Se sisältää suurimman osan MTL2-ominaisuuksista, ja sitä on myös parannettu uusilla optimointitekniikoilla, kuten meta-virittämisellä. Esimerkiksi dynaamisesti kokoisen konttisilmukan purkaminen voidaan määrittää funktiokutsussa. Alustasta riippumaton suorituskyvyn skaalautuvuus saavutetaan rekursiivisen tietorakenteen ja rekursiivisten algoritmien avulla. [2]

Universaalit sovellukset voidaan kirjoittaa alkuperäisellä merkinnällä (koodauksella), kuten v += A*q - w; kun taas kirjasto itse vetoaa sopiviin algoritmeihin: matriisi-vektori kertolasku tai matriisi kertominen tai vektori-skalaari kertominen jne. Tavoitteena on piilottaa toteutusongelmat kirjaston sisällä ja tarjota käyttäjäystävällinen käyttöliittymä. MTL4:ää käytetään erilaisissa paketeissa, kuten Finite Element Methodissa ja Finite Volume Methodissa , kuten FEniCS Projectissa . [3]

Muistiinpanot

  1. JG Siek ja A. Lumsdaine: Matriisimallikirjasto: yleinen ohjelmointimenetelmä korkean suorituskyvyn numeeriseen lineaarialgebraan . ISCOPE 1998. Arkistoitu alkuperäisestä 12. toukokuuta 2008.
  2. P. Gottschling, DS Wise ja MD Adams: Esityksen läpinäkyvät matriisialgoritmit skaalautuvalla suorituskyvyllä. ICS '07: Proc. 21. harjoittelija. konf. aiheesta Supercomputing, s. 116-125, ACM Press, New York, 2007. Arkistoitu alkuperäisestä 20. heinäkuuta 2008.
  3. Dolfin-verkkosivu FEniCS-projektissa.  (linkki ei saatavilla)

Katso myös

Linkit