Anar al contingut

LAPACK

De L'Enciclopèdia, la wikipedia en valencià

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, D representen aritmètica de menge flotant real respectivament en precisió simple i doble, mentres que C i Z representen 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òdic DI, la subrutina espera un vector de llongitut n conté els elements en la diagonal, mentres que quan es dona el còdic GE, 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, SV denota una subrutina per a resoldre un sistema llineal, mentres que R denota 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.

Tipos de matriu en la nomenclatura de LAPACK
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:

Referències

[editar | editar còdic]


Referències

[editar | editar còdic]