LAPACK - Naming Scheme

Naming Scheme

Subroutines in LAPACK have a characteristic naming convention which makes the identifiers short but rather obscure. 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 form pmmaaa, 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, while C and Z stand for complex arithmetic with respectively single and double precision. The newer version LAPACK95 use 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 different kind of matrices are reported below; the actual data are stored in a different format depending on the specific kind; e.g., when the code DI is given, the subroutine expects a vector of length n containing the elements on the diagonal, while when the code GE is given, the subroutine expects an n×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 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.

Read more about this topic:  LAPACK

Famous quotes containing the words naming and/or scheme:

    The night is itself sleep
    And what goes on in it, the naming of the wind,
    Our notes to each other, always repeated, always the same.
    John Ashbery (b. 1927)

    I have no scheme about it,—no designs on men at all; and, if I had, my mode would be to tempt them with the fruit, and not with the manure. To what end do I lead a simple life at all, pray? That I may teach others to simplify their lives?—and so all our lives be simplified merely, like an algebraic formula? Or not, rather, that I may make use of the ground I have cleared, to live more worthily and profitably?
    Henry David Thoreau (1817–1862)