LAPACK Auxiliary Routines

This appendix lists all of the auxiliary routines (except for the
BLAS) that are called from the LAPACK routines.
These routines are found in the directory `LAPACK/SRC`.
Routines specified with an underscore as the first character are
available in all four data types (S, D, C, and Z), except those
marked (real), for which the first character may be `S' or `D', and
those marked (complex), for which the first character may be `C' or `Z'.

Special subroutines:

XERBLA Error handler for the BLAS and LAPACK routines

Special functions:

ILAENV INTEGER Return block size and other parameters

LSAME LOGICAL Return .TRUE. if two characters are the same

regardless of case

LSAMEN LOGICAL Return .TRUE. if two character strings are the

same regardless of case

SLAMCH REAL Return single precision machine parameters

DLAMCH DOUBLE PRECISION Return double precision machine parameters

Functions for computing norms:

_LANGB General band matrix

_LANGE General matrix

_LANGT General tridiagonal matrix

_LANHB (complex) Hermitian band matrix

_LANHE (complex) Hermitian matrix

_LANHP (complex) Hermitian packed matrix

_LANHS Upper Hessenberg matrix

_LANHT (complex) Hermitian tridiagonal matrix

_LANSB Symmetric band matrix

_LANSP Symmetric packed matrix

_LANST (real) Symmetric tridiagonal matrix

_LANSY Symmetric matrix

_LANTB Triangular band matrix

_LANTP Triangular packed matrix

_LANTR Trapezoidal matrix

Extensions to the Level 1 and 2 BLAS:

CROT Apply a plane rotation to a pair of complex vectors, where the cos is real

and the sin is complex

CSROT Apply a real plane rotation to a pair of complex vectors

ZDROT Double precision version of CSROT

_SYMV (complex) Symmetric matrix times vector

_SPMV (complex) Symmetric packed matrix times vector

_SYR (complex) Symmetric rank-1 update

_SPR (complex) Symmetric rank-1 update of a packed matrix

ICMAX1 Find the index of element whose real part has max. abs. value

IZMAX1 Find the index of element whose real part has max. abs. value

SCSUM1 Sum absolute values of a complex vector

DZSUM1 Double precision version of SCSUM1

_RSCL (real) Scale a vector by the reciprocal of a constant

CSRSCL Scale a complex vector by the reciprocal of a real constant

ZDRSCL Double precision version of CSRSCL

Level 2 BLAS versions of the block routines:

_GBTF2 compute the LU factorization of a general band matrix

_GEBD2 reduce a general matrix to bidiagonal form

_GEHD2 reduce a square matrix to upper Hessenberg form

_GELQ2 compute an LQ factorization without pivoting

_GEQL2 compute a QL factorization without pivoting

_GEQR2 compute a QR factorization without pivoting

_GERQ2 compute an RQ factorization without pivoting

_GESC2 solves the system of linear equations 578#578

using the factorization computed by xGETC2

_GETC2 computes the LU factorization of a general matrix with complete pivoting

_GETF2 compute the LU factorization of a general matrix

_GTTS2

_HEGS2 (complex) reduce a Hermitian-definite generalized eigenvalue problem to

standard form

_HETD2 (complex) reduce a Hermitian matrix to real tridiagonal form

_HETF2 (complex) compute diagonal pivoting factorization of a Hermitian matrix

_ORG2L (real) generate the orthogonal matrix from xGEQLF

_ORG2R (real) generate the orthogonal matrix from xGEQRF

_ORGL2 (real) generate the orthogonal matrix from xGEQLF

_ORGR2 (real) generate the orthogonal matrix from xGERQF

_ORM2L (real) multiply by the orthogonal matrix from xGEQLF

_ORM2R (real) multiply by the orthogonal matrix from xGEQRF

_ORML2 (real) multiply by the orthogonal matrix from xGELQF

_ORMR2 (real) multiply by the orthogonal matrix from xGERQF

_ORMR3 (real) multiply by the orthogonal matrix from xTZRZF

_PBTF2 compute the Cholesky factorization of a positive definite band matrix

_POTF2 compute the Cholesky factorization of a positive definite matrix

_PTTS2

_SYGS2 (real) reduce a symmetric-definite generalized eigenvalue problem to

standard form

_SYTD2 (real) reduce a symmetric matrix to tridiagonal form

_SYTF2 compute the diagonal pivoting factorization of a symmetric matrix

_TGEX2 swaps adjacent diagonal blocks in an upper (quasi) triangular matrix pair

174#174 by an orthogonal equivalence transformation

_TGSY2 Solves the generalized Sylvester equation

_TRTI2 compute the inverse of a triangular matrix

_UNG2L (complex) generate the unitary matrix from xGEQLF

_UNG2R (complex) generate the unitary matrix from xGEQRF

_UNGL2 (complex) generate the unitary matrix from xGEQLF

_UNGR2 (complex) generate the unitary matrix from xGERQF

_UNM2L (complex) multiply by the unitary matrix from xGEQLF

_UNM2R (complex) multiply by the unitary matrix from xGEQRF

_UNML2 (complex) multiply by the unitary matrix from xGELQF

_UNMR2 (complex) multiply by the unitary matrix from xGERQF

_UNMR3 (complex) multiply by the unitary matrix from xTZRZF

Other LAPACK auxiliary routines:

_LABAD (real) returns square root of underflow and overflow if exponent range is large

_LABRD reduce NB rows or columns of a matrix to upper or lower bidiagonal form

_LACGV (complex) conjugates a complex vector of length n

_LACRM (complex) matrix multiply 579#579, where A is complex, B is real,

and C is complex.

_LACRT (complex) applies a plane rotation to two complex vectors

_LACON estimate the norm of a matrix for use in condition estimation

_LACP2 copies all or part of a real matrix to a complex matrix

_LACPY copy a matrix to another matrix

_LADIV perform complex division in real arithmetic

_LAE2 (real) compute eigenvalues of a 2-by-2 real symmetric matrix

_LAEBZ compute and use the count of eigenvalues of a symmetric

tridiagonal matrix

_LAED0 Used by xSTEDC.

_LAED1 (real) Used by xSTEDC.

_LAED2 (real) Used by xSTEDC.

_LAED3 (real) Used by xSTEDC.

_LAED4 (real) Used by xSTEDC.

_LAED5 (real) Used by xSTEDC.

_LAED6 (real) Used by xSTEDC.

_LAED7 Used by xSTEDC.

_LAED8 Used by xSTEDC.

_LAED9 (real) Used by xSTEDC.

_LAEDA Used by xSTEDC.

_LAEIN Use inverse iteration to find a specified right and/or left eigenvector of an

upper Hessenberg matrix

_LAESY (complex) Compute eigenvalues and eigenvectors of a complex symmetric

2-by-2 matrix

_LAEV2 Compute eigenvalues and eigenvectors of a 2-by-2 real symmetric or complex

Hermitian matrix

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

_LAG2 compute the eigenvalues of a 2-by-2 generalized

eigenvalue problem with scaling to avoid over-/underflow

_LAGS2 computes 2-by-2 orthogonal matrices

_LAGTF (real) factorizes the matrix 580#580

_LAGTM matrix-vector product where the matrix is tridiagonal

_LAGTS solves a system of equations 581#581 where

85#85 is a tridiagonal matrix

_LAGV2 computes the generalized Schur factorization of a 2-by-2 matrix

pencil (A,B), where B is upper triangular.

_LAHEF (complex) compute part of the diagonal pivoting factorization of a Hermitian

matrix

_LAHQR Find the Schur factorization of a Hessenberg matrix (modified version of

HQR from EISPACK)

_LAHRD reduce NB columns of a general matrix to Hessenberg form

_LAIC1 apply one step of incremental condition estimation

_LALN2 (real) Solve a 1-by-1 or 2-by-2 linear system

_LALS0 Used by xGELSD.

_LALSA Used by xGELSD.

_LALSD Used by xGELSD.

_LAMRG (real) Creates a permutation list to merge entries of

two independently sorted sets

_LANV2 (real) computes the Schur factorization of a real 2-by-2nonsymmetric matrix

_LAPLL measures linear dependence of two vectors

_LAPMT applies forward or backward permutations to the columns of a matrix

_LAPY2 (real) Compute square root of X**2 + Y**2

_LAPY3 (real) Compute square root of X**2 + Y**2 + Z**2

_LAQGB equilibrate a general band matrix

_LAQGE equilibrate a general matrix

_LAQP2 Used by xGEQP3.

_LAQPS Used by xGEQP3.

_LAQSB equilibrate a symmetric band matrix

_LAQSP equilibrate a symmetric packed matrix

_LAQSY equilibrate a symmetric matrix

_LAQTR (real) solve a real quasi-triangular system

_LAR1V Computes the (scaled) column of the inverse of the

submatrix in rows B1 through BN of the tridiagonal matrix

582#582

_LAR2V apply real plane rotations from both sides to a sequence

of 2-by-2 real symmetric matrices

_LARCM (complex) matrix multiply 579#579, where A is real, B is complex,

and C is complex.

_LARF apply (multiply by) an elementary reflector

_LARFB apply (multiply by) a block reflector

_LARFG generate an elementary reflector

_LARFT form the triangular factor of a block reflector

_LARFX unrolled version of xLARF

_LARGV generate a vector of plane rotations

_LARNV returns a vector of random numbers from a uniform or normaldistribution

_LARRB (real) performs limited bisection to locate eigenvalues

_LARRE (real) sets ``small'' off-diagonal elements of tridiagonal

matrix 85#85 to zero, and find the numbers 583#583,

the base 584#584

representations and the eigenvalues of each 585#585.

_LARRF (real) finds a new relatively robust representation such

that at least one of the eigenvalues is relatively isolated.

_LARRV (real) computes the eigenvectors of the tridiagonal matrix

586#586 given 140#140, 282#282 and the eigenvalues of 30#30.

_LARTG generate a plane rotation

_LARTV apply a vector of plane rotations to a pair of vectors

_LARUV (real) returns a vector of real random numbers from a uniformdistribution

_LARZ apply (multiply by) an elementary reflector as returned by xTZRZF

_LARZB apply (multiply by) a block reflector as returned by xTZRZF

_LARZT form the triangular factor of a block reflector as returned by xTZRZF

_LAS2 (real) Compute singular values of a 2-by-2 triangular matrix

_LASCL scale a matrix by CTO/CFROM

_LASD0 (real) Used by SBDSDC.

_LASD1 (real) Used by SBDSDC.

_LASD2 (real) Used by SBDSDC.

_LASD3 (real) Used by SBDSDC.

_LASD4 (real) Used by SBDSDC.

_LASD5 (real) Used by SBDSDC.

_LASD6 (real) Used by SBDSDC.

_LASD7 (real) Used by SBDSDC.

_LASD8 (real) Used by SBDSDC.

_LASD9 (real) Used by SBDSDC.

_LASDA (real) Used by SBDSDC.

_LASDQ (real) Used by SBDSDC.

_LASDT (real) Used by SBDSDC.

_LASET initializes a matrix to BETA on the diagonal and ALPHA on

the off-diagonals

_LASQ1 (real) Used by SBDSQR.

_LASQ2 (real) Used by SBDSQR.

_LASQ3 (real) Used by SBDSQR.

_LASQ4 (real) Used by SBDSQR.

_LASQ5 (real) Used by SBDSQR and SSTEGR.

_LASQ6 (real) Used by SBDSQR and SSTEGR.

_LASR Apply a sequence of plane rotations to a rectangular matrix

_LASRT Sorts numbers in increasing or decreasing order using Quick Sort,

reverting to Insertion sort on arrays of size 545#545 20.

_LASSQ Compute a scaled sum of squares of the elements of a vector

_LASV2 (real) Compute singular values and singular vectors of a 2-by-2 triangular

matrix

_LASWP Perform a series of row interchanges

_LASY2 (real) solve for a matrix X that satisfies the equation

587#587

_LASYF compute part of the diagonal pivoting factorization of a symmetric matrix

_LATBS solve a triangular band system with scaling to prevent overflow

_LATDF computes a contribution to the reciprocal Dif-estimate

_LATPS solve a packed triangular system with scaling to prevent overflow

_LATRD reduce NB rows and columns of a real symmetric or complex Hermitian

matrix to tridiagonal form

_LATRS solve a triangular system with scaling to prevent overflow

_LATRZ factors a real upper trapezoidal matrix by orthogonal transformations

_LATZM apply a Householder matrix generated by xTZRQF to a matrix

_LAUU2 Unblocked version of _LAUUM

_LAUUM Compute the product U*U' or L'*L (blocked version)