next up previous contents
Next: ScaLAPACK Auxiliary Routines Up: lawn93 Previous: Input File for Testing   Contents


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 $ \times $   $ \times $ $ \times $ $ \times $   $ \times $ $ \times $ $ \times $        
TRS $ \times $   $ \times $ $ \times $ $ \times $   $ \times $ $ \times $ $ \times $   $ \times $    
RFS $ \times $           $ \times $       $ \times $    
TRI $ \times $           $ \times $       $ \times $    
CON $ \times $           $ \times $       $ \times $    
EQU $ \times $           $ \times $            
QPF $ \times $                        
QRF\dag $ \times $ $ \times $                      
RZF                       $ \times $  
GQR\dag                         $ \times $
MQR\ddag                         $ \times $
\dag- also RQ, QL, and LQ    
\ddag- 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 $ \times $                  
TRD             $ \times $      
BRD $ \times $                  
EQZ                    
EIN               $ \times $    
EBZ               $ \times $    
EDC               $ \times $    
EVC         $ \times $     $ \times $    
GST             $ \times $      

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

  UN
  OR
GHR $ \times $
GTR $ \times $
GBR $ \times $
MHR $ \times $
MTR $ \times $
MBR $ \times $



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 $ \times $   $ \times $ $ \times $ $ \times $   $ \times $ $ \times $ $ \times $      
SVX $ \times $           $ \times $          
LS $ \times $                      
EV                   $ \times $    
EVD                   $ \times $    
EVX                   $ \times $    
GVX                   $ \times $    
SVD $ \times $                      


next up previous contents
Next: ScaLAPACK Auxiliary Routines Up: lawn93 Previous: Input File for Testing   Contents
Susan Blackford 2001-08-12