LAPACK
LAPACK, acrònim de Linear Algebra Package (en espanyol, Paquet d'Àlgebra Llineal) és una biblioteca software estàndar para àlgebra llineal numèrica. Proporciona rutines per a resoldre sistemes d'equacions llineals i mínims quadrats llineals, problemes de valors propis i descomposició de valors singulars. També inclou rutines per a implementar les factorización matriciales associades com la descomposició LU, QR, Cholesky i Schur. LAPACK es va escriure originalment en FORTRAN 77, pero es va traslladar a Fortran 90 en la versió 3.2 (2008).[1] Les rutines manegen matrius tant reals com complexes en precisió simple i doble.
LAPACK va ser dissenyada com la successora de les equacions llineals i les rutines llineals de mínims quadrats de LINPACK i les rutines de valors propis d'EISPACK. LINPACK, escrita en les décades de 1970 i 1980, va ser dissenyada per a eixecutar-se en les llavors modernes computadores vectorials en memòria compartida. LAPACK, pel contrari, va ser dissenyada per a explotar eficaçment les memòries caché en arquitectura modernes basades en caché i, per tant, poder eixecutar órdens de magnitut més ràpit que LINPACK en tals màquines, per a una implementació BLAS ben ajustada. LAPACK també s'ha ampliat per a eixecutar-se en sistemes de memòria distribuïda en paquets posteriors com ScaLAPACK i PLAPACK.[2]
LAPACK té una llicència BSD de tres clàusules, una llicència de software lliure permissiva en poques restriccions.
Nomenclatura
[editar | editar còdic]Les subrutina en LAPACK tenen una convenció de nomenclatura que fa que els identificadors siguen molt compactes. Açò era necessari ya que els primers estàndarts de Fortran solament admetien identificadors de fins a sis caràcters, per lo que els noms devien acurtar-se per a que encaixaren en este llímit.
Un nom de subrutina LAPACK té el format pmmaaa, a on:
pés un còdic d'una lletra que indica el tipo de constants numèriques utilisades.S,Drepresenten aritmètica de menge flotant real respectivament en precisió simple i doble, mentres queCiZrepresenten aritmètica complexa en precisió simple i doble respectivament. La versió més recent, LAPACK95, utilisa subrutina genèriques per a evitar especificar explícitament el tipo de senyes.mmés un còdic de dos lletres que indica el tipo de matriu que espera l'algoritme. Els còdics per als diferents tipos de matrius s'indiquen a continuació; les senyes reals s'almagasenen en un format diferent segons el tipo específic; per eixemple, quan es dona el còdicDI, la subrutina espera un vector de llongitutnconté els elements en la diagonal, mentres que quan es dona el còdicGE, la subrutina espera una matriu n×n continga les entrades de la matriu.
aaaés un còdic d'una a tres lletres que descriu l'algoritme real implementat en la subrutina, per eixemple,SVdenota una subrutina per a resoldre un sistema llineal, mentres queRdenota una actualisació de ranc 1.
Com a eixemple, la subrutina per a resoldre un sistema llineal en una matriu general (no estructurada) usant aritmètica real de doble precisió es diu DGESV.
| Nom | Descripció |
|---|---|
| BD | matriu bidiagonal |
| DI | matriu diagonal |
| GB | matriu de banda general |
| GE | matriu general (és dir, asimètrica, en alguns casos rectangular) |
| GG | matrius generals, problema generalisat (és dir, un parell de matrius generals) |
| GT | matriu tridiagonal general |
| HB | (complex) Matriu de bandes hermitianas |
| HE | (complex) matriu hermitiana |
| HG | matriu de Hessenberg superior, problema generalisat (és dir, una matriu de Hessenberg i una triangular) |
| HP | (complex) Hermitian, matriu d'almagasenament empaquetada |
| HS | matriu de Hessenberg superior |
| OP | matriu ortogonal (real), matriu d'almagasenament empaquetada |
| OR | matriu ortogonal (real) |
| PB | matriu simètrica o matriu hermitiana banda definida positiva |
| PO | matriu simètrica o matriu hermitiana positiva definida |
| PP | matriu simètrica o matriu de Hermitian matriu de almagasenament empaquetada, definida positiva |
| PT | matriu simètrica o matriu hermitiana matriu tridiagonal definida positiva |
| SB | matriu de banda simètrica (real) |
| SP | matriu d'almagasenament empaquetada simètrica |
| ST | (real) matriu simètrica matriu tridiagonal |
| SY | matriu simètrica |
| TB | matriu de bandes triangulars |
| TG | matrius triangulars, problema generalisat (és dir, un parell de matrius triangulars) |
| TP | matriu d'almagasenament empaquetada triangular |
| TR | matriu triangular (o en alguns casos cuasi-triangular) |
| TZ | matriu trapezoidal |
| UN | (complexa) matriu unitària |
| UP | (complexa) matriu d'almagasenament empaquetada unitària |
Els detalls sobre este esquema es poden trobar en la secció Esquema de noms en la Guia de l'usuari de LAPACK.
Us en atres llenguages de programació
[editar | editar còdic]Hui en dia, molts entorns de programació admeten l'us de biblioteques en enllaç en el llenguage C. Les rutines LAPACK es poden usar com a funcions en C si s'atén a algunes restriccions.
També es troben disponibles varis bindings alternatius:
- Armadillo para C ++
- IT ++ per a C ++
- LAPACK ++ per a C ++
- Lacaml para OCaml
- CLapack para C
- SciPy para Python
- Gonum para Go
Referències
[editar | editar còdic]- ↑ «LAPACK 3.2 Release Notes».
- ↑ «PLAPACK: Parallel Linear Algebra Package». www.cs.utexas.edu. University of Texas at Austin. Consultat el 2017-04-20.
Referències
[editar | editar còdic]
- Este artícul conté una traducció derivada de «LAPACK» de Wikipedia en castellà publicada baix la Llicència de documentació lliure de GNU i la Llicència Creative Commons Reconeiximent-CompartirIgual 4.0 Internacional.