ScaLAPACK Routines

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

Each subroutine name in ScaLAPACK, which has an LAPACK equivalent, is
simply the LAPACK name prepended by a `P`. All names consist of
seven characters in the form PTXXYYY. The second 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:

DB general band (diagonally-dominant like)

DT general tridiagonal (diagonally-dominant like)

GB general band

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

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

HE (complex) Hermitian

OR (real) orthogonal

PB symmetric or Hermitian positive definite band

PO symmetric or Hermitian positive definite

PT symmetric or Hermitian positive definite tridiagonal

ST symmetric tridiagonal

SY symmetric

TR triangular (or in some cases quasi-triangular)

TZ trapezoidal

UN (complex) unitary

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

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

EQU equilibrate a matrix to reduce its condition number

EVC compute the eigenvectors from the Schur factorization

GBR generate the orthogonal/unitary matrix from PxGEBRD

GHR generate the orthogonal/unitary matrix from PxGEHRD

GLQ generate the orthogonal/unitary matrix from PxGELQF

GQL generate the orthogonal/unitary matrix from PxGEQLF

GQR generate the orthogonal/unitary matrix from PxGEQRF

GRQ generate the orthogonal/unitary matrix from PxGERQF

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

HRD reduce to upper Hessenberg form by orthogonal transformations

LQF compute an LQ factorization without pivoting

MBR multiply by the orthogonal/unitary matrix from PxGEBRD

MHR multiply by the orthogonal/unitary matrix from PxGEHRD

MLQ multiply by the orthogonal/unitary matrix from PxGELQF

MQL multiply by the orthogonal/unitary matrix from PxGEQLF

MQR multiply by the orthogonal/unitary matrix from PxGEQRF

MRQ multiply by the orthogonal/unitary matrix from PxGERQF

MRZ multiply by the orthogonal/unitary matrix from PxTZRZF

MTR multiply by the orthogonal/unitary matrix from PxxxTRD

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

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 ScaLAPACK
subroutines for the solution of systems of linear equations:

HE | UN | ||||||||||||

GE | GG | DB | GB | DT | GT | PO | PB | PT | SY | TR | TZ | OR | |

TRF | |||||||||||||

TRS | |||||||||||||

RFS | |||||||||||||

TRI | |||||||||||||

CON | |||||||||||||

EQU | |||||||||||||

QPF | |||||||||||||

QRF | |||||||||||||

RZF | |||||||||||||

GQR | |||||||||||||

MQR | |||||||||||||

- also RQ, QL, and LQ | |||||||||||||

- also RQ, RZ, QL, and LQ |

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

HE | ||||||||||

GE | GG | HS | HG | TR | TG | SY | ST | PT | BD | |

HRD | ||||||||||

TRD | ||||||||||

BRD | ||||||||||

EQZ | ||||||||||

EIN | ||||||||||

EBZ | ||||||||||

EDC | ||||||||||

EVC | ||||||||||

GST |

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

UN | |

OR | |

GHR | |

GTR | |

GBR | |

MHR | |

MTR | |

MBR |

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

LS solve over- or underdetermined linear system using orthogonal factorizations

EV compute all eigenvalues and/or eigenvectors

EVD compute all eigenvalues and, optionally, eigenvectors (using divide and conquer algorithm)

EVX compute selected eigenvalues and eigenvectors

GVX compute selected generalized eigenvalues and/or generalized eigenvectors

SVD compute the SVD and/or singular vectors

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

HE | HB | |||||||||||

GE | GG | DB | GB | DT | GT | PO | PB | PT | SY | SB | ST | |

SV | ||||||||||||

SVX | ||||||||||||

LS | ||||||||||||

EV | ||||||||||||

EVD | ||||||||||||

EVX | ||||||||||||

GVX | ||||||||||||

SVD |