LAPACK

From Wikipedia, the free encyclopedia

LAPACK, the Linear Algebra PACKage, is a software library for numerical computing written in Fortran 77. It provides routines for solving systems of simultaneous linear equations, least-squares solutions of linear systems of equations, eigenvalue problems, Householder transformation to implement QR decomposition on a matrix and singular value problems. Lapack95 uses features of Fortran 95 to simplify the interface of the routines. LAPACK is licensed under a three-clause BSD style license[1].

LAPACK can be seen as the successor to the original LINPACK, which was designed to run on the then-modern vector computers with shared memory. LAPACK, in contrast, depends upon the Basic Linear Algebra Subprograms (BLAS) in order to effectively exploit the caches on modern cache-based architectures, and thus can run orders of magnitude faster than LINPACK on such machines, given a well-tuned BLAS implementation. LAPACK has also been extended to run on distributed-memory systems in later packages such as ScaLAPACK and PLAPACK.

LAPACK has largely superseded the Eigenvalue routines from EISPACK, and the linear equations and linear least-squares problems from LINPACK.

There are several language bindings available:

[edit] Naming scheme

Matrix types in the LAPACK naming scheme
Name Description
BD Bidiagonal matrix
DI Diagonal matrix
GB Band matrix
GE Matrix (i.e., unsymmetric, in some cases rectangular)
GG general matrices, generalized problem (i.e., a pair of general matrices)
GT Tridiagonal Matrix General Matrix
HB (complex) Hermitian matrix Band matrix
HE (complex) Hermitian matrix
HG upper Hessenberg matrix, generalized problem (i.e a Hessenberg and a Triangular matrix)
HP (complex) Hermitian matrix, Packed storage matrix
HS upper Hessenberg matrix
OP (real) Orthogonal matrix, Packed storage matrix
OR (real) Orthogonal matrix
PB Symmetric matrix or Hermitian matrix positive definite band
PO Symmetric matrix or Hermitian matrix positive definite
PP Symmetric matrix or Hermitian matrix positive definite, Packed storage matrix
PT Symmetric matrix or Hermitian matrix positive definite Tridiagonal matrix
SB (real) Symmetric matrix Band matrix
SP Symmetric matrix, Packed storage matrix
ST (real) Symmetric matrix Tridiagonal matrix
SY Symmetric matrix
TB Triangular matrix Band matrix
TG triangular matrices, generalized problem (i.e., a pair of triangular matrices)
TP Triangular matrix, Packed storage matrix
TR Triangular matrix (or in some cases quasi-triangular)
TZ Trapezoidal matrix
UN (complex) Unitary matrix
UP (complex) Unitary matrix, Packed storage matrix

Details on this scheme can be found in the Naming scheme section in LAPACK Users' Guide.

[edit] Use of LAPACK with other programming languages

Many programming environments today support the use of libraries with C binding. The LAPACK routines can be used like C functions if a few restrictions are observed. See using LAPACK with C for useful hints and examples.

[edit] External links