Matrix mallbibliotek

Matrix mallbibliotek
Sorts Matematisk programvara
Skrivet i C++
Operativ system Linux , Unix , Mac OS X , Windows
Gränssnittsspråk C++
Licens Boost Software License
Hemsida mtl4.org

Matrix Template Library (MTL) är ett linjärt algebrabibliotek för C++- program.

MTL använder C++-mallar , som kraftigt reducerar programkoden. Alla matriser och vektorer är giltiga i alla klassiska talformat: float, double, complex <float>eller complex <double>.

Dessutom tillåter generisk programmering godtyckliga typer så länge de utför de nödvändiga operationerna. Till exempel kan du använda godtyckliga numeriska format (till exempel unsigned short), typer för intervallaritmetik (till exempel boost::interval från Boost-biblioteket , quaternions (till exempel boost::quaternion), högprecisionstyper (till exempel , GNU Multi-Precision Library ), och motsvarande användardefinierade typer.

MTL stöder olika implementeringar av tät matris och gles matris . MTL2 utvecklades av Jeremy Siek och Andrew Lumsdaine. [ett]

Den senaste versionen, MTL4, utvecklades av Peter Gottschling och Andrew Lumsdaine. Den innehåller de flesta av MTL2-funktionerna och är också förbättrad med nya optimeringstekniker som meta-tuning, till exempel kan avveckling av en containerloop av dynamisk storlek definieras i ett funktionsanrop. Plattformsoberoende prestandaskalbarhet uppnås genom den rekursiva datastrukturen och rekursiva algoritmer. [2]

Universella applikationer kan skrivas i ursprunglig notation (kodning), såsom v += A*q - w; medan biblioteket självt anropar lämpliga algoritmer: matris-vektormultiplikation eller matrismultiplikation eller vektor-skalär multiplikation, etc. Målet är att dölja implementeringsproblem inom biblioteket och tillhandahålla ett användarvänligt gränssnitt. MTL4 används i olika paket såsom Finite Element Method och Finite Volume Method , såsom FEniCS Project . [3]

Anteckningar

  1. JG Siek och A. Lumsdaine: Matrismallbiblioteket : En generisk programmeringsmetod till högpresterande numerisk linjär algebra . ISCOPE 1998. Arkiverad från originalet den 12 maj 2008.
  2. P. Gottschling, DS Wise och MD Adams: Representationstransparenta matrisalgoritmer med skalbar prestanda. ICS '07: Proc. 21:a praktikanten. konf. om Supercomputing, s. 116-125, ACM Press, New York, 2007. Arkiverad från originalet den 20 juli 2008.
  3. Dolfins webbsida inom FEniCS-projektet.  (inte tillgänglig länk)

Se även

Länkar