5.3 LAPACK: Linear Algebra PACKage

LAPACK è scritto in Fortran77 (ma esistono delle interfacce da C e C++, Python, etc.) e fornisce routines per risolvere

LAPACK affronta questo problema riorganizzando gli algoritmi per usare operazioni matriciali a blocchi, ad esempio nella moltiplicazione di matrici, all’interno dei cicli innestati più profondamente. Tali operazioni a blocchi possono essere ottimizzate per ogni architettura per tenere conto delle gerarchie di memoria, fornendo così un approccio trasportabile al raggiungimento di elevata efficienza sulle diverse architetture moderne.

Le routine LAPACK sono scritte utilizzando in massimo grado chiamate alla libreria Basic Linear Algebra Subprograms (BLAS). LAPACK è stata progettata dall’inizio per sfruttare le BLAS di livello 3.

La libreria fornisce anche le fattorizzazioni delle matrici associate (LU, Cholesky, QR, SVD, Schur, generalized Schur) , come pure le computazioni correlate quali la permutazione delle fattorizzazioni di Schur, etc.

La libreria gestisce sia matrici dense che bandate, ma non matrici sparse generali. In tutte le aree, funzionalità similari sono fornite per matrici reali e complesse, sia in singola che in doppia precisione.