You are on page 1of 3

LAPACK

LAPACK (Linear Algebra Package) is a standard software library for numerical


LAPACK
linear algebra. It provides routines for solving systems of linear equations and linear
least squares, eigenvalue problems, and singular value decomposition. It also
includes routines to implement the associated matrix factorizations such as LU, QR,
Cholesky and Schur decomposition. LAPACK was originally written in FORTRAN
77, but moved to Fortran 90 in version 3.2 (2008).[1] The routines handle both real
and complex matrices in both single and double precision.
Initial release 1992
LAPACK was designed as the successor to the linear equations and linear least-
Stable release 3.8.0 /
squares routines of LINPACK and the eigenvalue routines of EISPACK. LINPACK,
12 November 2017
written in the 1970s and 1980s, was designed to run on the then-modern vector
computers with shared memory. LAPACK, in contrast, was designed to effectively Written in Fortran 90
exploit the caches on modern cache-based architectures, and thus can run orders of Type Software library
magnitude faster than LINPACK on such machines, given a well-tuned BLAS License BSD-new
implementation. LAPACK has also been extended to run on distributed memory
Website www.netlib.org
systems in later packages such asScaLAPACK and PLAPACK.[2]
/lapack/
LAPACK is licensed under a three-clause BSD style license, a permissive free
software license with few restrictions.

Contents
Naming scheme
Use with other programming languages
See also
References
Further reading
External links

Naming scheme
Subroutines in LAPACK have a naming convention which makes the identifiers very compact. This was necessary as the first Fortran
standards only supported identifiers up to six characters long, so the names had to be shortened to fit into this limit.

A LAPACK subroutine name is in the formpmmaaa, where:

p is a one-letter code denoting the type of numerical constants used.S, D stand for real floating point arithmetic
respectively in single and double precision, whileC and Z stand for complex arithmetic with respectively single and
double precision. The newer version, LAP ACK95, uses generic subroutines in order to overcome the need to
explicitly specify the data type.
mm is a two-letter code denoting the kind of matrix expected by the algorithm. The codes for the ferent
dif kind of
matrices are reported below; the actual data are stored in a dif
ferent format depending on the specific kind; e.g.,
when the code DI is given, the subroutine expects a vector of lengthn containing the elements on the diagonal,
while when the code GE is given, the subroutine expects ann×n array containing the entries of the matrix.
aaa is a one- to three-letter code describing the actual algorithm implemented in the subroutine, e.g.
SV denotes a
subroutine to solve linear system, while R denotes a rank-1 update.
For example, the subroutine to solve a linear system with a general (non-structured) matrix using real double-precision arithmetic is
called DGESV.

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 aTriangular 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 oftriangular 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 theNaming scheme section in LAPACK Users' Guide.

Use 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.
Several alternative language bindings are also available:

Armadillo for C++


IT++ for C++
LAPACK++ for C++
Lacaml for OCaml
SciPy for Python

See also
List of numerical libraries
Math Kernel Library (MKL)
NAG Numerical Library

References
1. "LAPACK 3.2 Release Notes"(http://www.netlib.org/lapack/lapack-3.2.html). 16 November 2008.
2. "PLAPACK: Parallel Linear Algebra Package" (https://www.cs.utexas.edu/users/plapack/). www.cs.utexas.edu.
University of Texas at Austin. 12 June 2007. Retrieved 20 April 2017.

Further reading
Anderson, E.; Bai, Z.; Bischof, C.; Blackford, S.;Demmel, J.; Dongarra, J.; Du Croz, J.; Greenbaum, A.; Hammarling,
S.; McKenney, A.; Sorensen, D. (1999).LAPACK Users' Guide (Third ed.). Philadelphia, PA: Society for Industrial
and Applied Mathematics.ISBN 0-89871-447-8.

External links
Official website on Netlib.org
LAPACK Users' Guide
NAG Library LAPACK reference
Sun Performance Libraryoptimized LAPACK for Solaris OS on SPARC/x86/x64 and Linux
How to use LAPACK with C
LAPACK & BLAS precompiled binaries for Win32 platform
LAPACK and BLAS for .NET

Retrieved from "https://en.wikipedia.org/w/index.php?title=LAP


ACK&oldid=817693692"

This page was last edited on 30 December 2017, at 00:37.

Text is available under theCreative Commons Attribution-ShareAlike License ; additional terms may apply. By using this
site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of theWikimedia
Foundation, Inc., a non-profit organization.

You might also like