LAPACK Routines

In this appendix, we review the subroutine naming scheme for LAPACK as presented in [1] and indicate by means of a table which subroutines are included in this release. We also list the driver routines.

Each subroutine name in LAPACK is a coded specification of the computation done by the subroutine. All names consist of six characters in the form TXXYYY. The first letter, T, indicates the matrix data type as follows:

S REAL

D DOUBLE PRECISION

C COMPLEX

Z COMPLEX*16 (if available)

The next two letters, XX, indicate the type of matrix. Most of these two-letter codes apply to both real and complex routines; a few apply specifically to one or the other, as indicated below:

BD bidiagonal

DI diagonal

GB general band

GE general (i.e. unsymmetric, in some cases rectangular)

GG general matrices, generalized problem (i.e. a pair of general matrices)

GT general tridiagonal

HB (complex) Hermitian band

HE (complex) Hermitian

HG upper Hessenberg matrix, generalized problem (i.e., a Hessenberg and a

triangular matrix)

HP (complex) Hermitian, packed storage

HS upper Hessenberg

OP (real) orthogonal, packed storage

OR (real) orthogonal

PB symmetric or Hermitian positive definite band

PO symmetric or Hermitian positive definite

PP symmetric or Hermitian positive definite, packed storage

PT symmetric or Hermitian positive definite tridiagonal

SB (real) symmetric band

SP symmetric, packed storage

ST symmetric tridiagonal

SY symmetric

TB triangular band

TG triangular matrices, generalized problem (i.e., a pair of triangular matrices)

TP triangular, packed storage

TR triangular (or in some cases quasi-triangular)

TZ trapezoidal

UN (complex) unitary

UP (complex) unitary, packed storage

The last three characters, YYY, indicate the computation done by a particular subroutine. Included in this release are subroutines to perform the following computations:

BAK back transformation of eigenvectors after balancing

BAL permute and/or balance to isolate eigenvalues

BRD reduce to bidiagonal form by orthogonal transformations

CON estimate condition number

EBZ compute selected eigenvalues by bisection

EDC compute eigenvectors using divide and conquer

EIN compute selected eigenvectors by inverse iteration

EQR compute eigenvalues and/or the Schur form using the QR algorithm

EGR compute selected eigenvalues, and optionally, eigenvectors

using Relatively Robust Representations

EQU equilibrate a matrix to reduce its condition number

EQZ compute generalized eigenvalues and/or generalized Schur form by QZ method

ERF compute eigenvectors using the Pal-Walker-Kahan variant of the QL or QR

algorithm

EVC compute eigenvectors from Schur factorization

EXC swap adjacent diagonal blocks in a quasi-upper triangular matrix

GBR generate the orthogonal/unitary matrix from xGEBRD

GHR generate the orthogonal/unitary matrix from xGEHRD

GLQ generate the orthogonal/unitary matrix from xGELQF

GQL generate the orthogonal/unitary matrix from xGEQLF

GQR generate the orthogonal/unitary matrix from xGEQRF

GRQ generate the orthogonal/unitary matrix from xGERQF

GST reduce a symmetric-definite generalized eigenvalue problem to standard form

GTR generate the orthogonal/unitary matrix from xxxTRD

HRD reduce to upper Hessenberg form by orthogonal transformations

LQF compute an LQ factorization without pivoting

MBR multiply by the orthogonal/unitary matrix from xGEBRD

MHR multiply by the orthogonal/unitary matrix from xGEHRD

MLQ multiply by the orthogonal/unitary matrix from xGELQF

MQL multiply by the orthogonal/unitary matrix from xGEQLF

MQR multiply by the orthogonal/unitary matrix from xGEQRF

MRQ multiply by the orthogonal/unitary matrix from xGERQF

MRZ multiply by the orthogonal/unitary matrix from xTZRZF

MTR multiply by the orthogonal/unitary matrix from xxxTRD

QLF compute a QL factorization without pivoting

QPF compute a QR factorization with column pivoting

QRF compute a QR factorization without pivoting

RFS refine initial solution returned by TRS routines

RQF compute an RQ factorization without pivoting

RZF compute an RZ factorization without pivoting

SDC compute using divide and conquer SVD

SEN compute a basis and/or reciprocal condition number (sensitivity) of an

invariant subspace

SJA obtain singular values, and optionally vectors, using Jacobi's method

SNA estimate reciprocal condition numbers of eigenvalue/-vector pairs

SQR compute singular values and/or singular vectors using the QR algorithm

SVP preprocessing for GSVD

SYL solve the Sylvester matrix equation

TRD reduce a symmetric matrix to real symmetric tridiagonal form

TRF compute a triangular factorization (LU, Cholesky, etc.)

TRI compute inverse (based on triangular factorization)

TRS solve systems of linear equations (based on triangular factorization)

Given these definitions, the following table indicates the LAPACK
subroutines for the solution of systems of linear equations:

HE | HP | UN | ||||||||||||

GE | GG | GB | GT | PO | PP | PB | PT | SY | SP | TR | TP | TB | OR | |

TRF | 181#181 | 181#181 | 181#181 | 181#181 | 181#181 | 181#181 | 181#181 | 181#181 | 181#181 | |||||

TRS | 181#181 | 181#181 | 181#181 | 181#181 | 181#181 | 181#181 | 181#181 | 181#181 | 181#181 | 181#181 | 181#181 | 181#181 | ||

RFS | 181#181 | 181#181 | 181#181 | 181#181 | 181#181 | 181#181 | 181#181 | 181#181 | 181#181 | 181#181 | 181#181 | 181#181 | ||

TRI | 181#181 | 181#181 | 181#181 | 181#181 | 181#181 | 181#181 | 181#181 | |||||||

CON | 181#181 | 181#181 | 181#181 | 181#181 | 181#181 | 181#181 | 181#181 | 181#181 | 181#181 | 181#181 | 181#181 | 181#181 | ||

EQU | 181#181 | 181#181 | 181#181 | 181#181 | 181#181 | |||||||||

QPF | 181#181 | |||||||||||||

QRF26#26 | 181#181 | 181#181 | ||||||||||||

GQR26#26 | 181#181 | |||||||||||||

MQR26#26 | 181#181 | |||||||||||||

26#26- also RQ, QL, LQ, and RZ |

The following table indicates the LAPACK
subroutines for finding eigenvalues and eigenvectors
or singular values and singular vectors:

HE | HP | HB | |||||||||||

GE | GB | GG | HS | HG | TR | TG | SY | SP | SB | ST | PT | BD | |

HRD | 181#181 | 181#181 | |||||||||||

TRD | 181#181 | 181#181 | 181#181 | ||||||||||

BRD | 181#181 | 181#181 | |||||||||||

EDC | 181#181 | ||||||||||||

EQR | 181#181 | 181#181 | 181#181 | ||||||||||

EQZ | 181#181 | ||||||||||||

EIN | 181#181 | 181#181 | |||||||||||

EVC | 181#181 | 181#181 | |||||||||||

EBZ | 181#181 | ||||||||||||

ERF | 181#181 | ||||||||||||

SQR | 181#181 | ||||||||||||

SDC | 181#181 | ||||||||||||

SEN | 181#181 | 181#181 | |||||||||||

SJA | 181#181 | ||||||||||||

SNA | 181#181 | 181#181 | |||||||||||

SVP | 181#181 | ||||||||||||

SYL | 181#181 | 181#181 | |||||||||||

EXC | 181#181 | 181#181 | |||||||||||

BAL | 181#181 | 181#181 | |||||||||||

BAK | 181#181 | 181#181 | |||||||||||

GST | 181#181 | 181#181 | 181#181 |

Orthogonal/unitary transformation routines have also been provided for the reductions that use elementary transformations.

UN | UP | |

OR | OP | |

GHR | 181#181 | |

GTR | 181#181 | 181#181 |

GBR | 181#181 | |

MHR | 181#181 | |

MTR | 181#181 | 181#181 |

MBR | 181#181 | |

MRZ | 181#181 |

In addition, a number of driver routines are provided with this release.
The naming convention for the driver routines is the same as for the
LAPACK routines, but the last 3 characters YYY have the following
meanings (note an `X' in the last character position indicates a more
expert driver):

SV factor the matrix and solve a system of equations

SVX equilibrate, factor, solve, compute error bounds and do iterative refinement, and

estimate the condition number

GLM solves the generalized linear regression model

LS solve over- or underdetermined linear system using orthogonal factorizations

LSE solves the constrained linear least squares problem

LSX compute a minimum-norm solution using a complete orthogonal factorization

(using QR with column pivoting xGEQPF, xTZRQF, and xLATZM)

LSY compute a minimum-norm solution using a complete orthogonal factorization

(using QR with column pivoting xGEQP3, xTZRZF, and xORMRZ)

LSS solve least squares problem using the SVD

LSD solve least squares problem using the divide and conquer SVD

EV compute all eigenvalues and/or eigenvectors

EVD compute all eigenvalues and/or eigenvectors; if eigenvectors are

desired, it uses a divide and conquer algorithm.

EVX compute selected eigenvalues and eigenvectors

EVR compute selected eigenvalues, and optionally, eigenvectors

using the Relatively Robust Representations

ES compute all eigenvalues, Schur form, and/or Schur vectors

ESX compute all eigenvalues, Schur form, and/or Schur vectors and the conditioning

of selected eigenvalues or eigenvectors

GV compute generalized eigenvalues and/or generalized eigenvectors

GVD compute generalized eigenvalues, and optionally, generalized

eigenvectors using a divide and conquer algorithm

GVX compute selected generalized eigenvalues, and optionally,

generalized eigenvectors

GS compute generalized eigenvalues, Schur form, and/or Schur vectors

SDD compute the divide-and-conquer SVD

SVD compute the SVD and/or singular vectors

The driver routines provided in LAPACK are indicated by the following table:

HE | HP | HB | ||||||||||

GE | GG | GB | GT | PO | PP | PB | PT | SY | SP | SB | ST | |

SV | 181#181 | 181#181 | 181#181 | 181#181 | 181#181 | 181#181 | 181#181 | 181#181 | 181#181 | |||

SVX | 181#181 | 181#181 | 181#181 | 181#181 | 181#181 | 181#181 | 181#181 | 181#181 | 181#181 | |||

GLM | 181#181 | |||||||||||

LS | 181#181 | |||||||||||

LSE | 181#181 | |||||||||||

LSX | 181#181 | |||||||||||

LSY | 181#181 | |||||||||||

LSS | 181#181 | |||||||||||

LSD | 181#181 | |||||||||||

EV | 181#181 | 181#181 | 181#181 | 181#181 | 181#181 | 181#181 | ||||||

EVD | 181#181 | 181#181 | 181#181 | 181#181 | ||||||||

EVX | 181#181 | 181#181 | 181#181 | 181#181 | 181#181 | 181#181 | ||||||

EVR | 181#181 | 181#181 | ||||||||||

ES | 181#181 | 181#181 | ||||||||||

ESX | 181#181 | 181#181 | ||||||||||

GV | 181#181 | 181#181 | 181#181 | |||||||||

GVD | 181#181 | 181#181 | 181#181 | |||||||||

GVX | 181#181 | 181#181 | 181#181 | |||||||||

SVD | 181#181 | 181#181 | ||||||||||

SDD | 181#181 |