ScaLAPACK Auxiliary Routines

This appendix lists all of the auxiliary routines (except for the
BLAS and LAPACK) that are called from the ScaLAPACK routines.
These routines are found in the directory `SCALAPACK/SRC`.
Routines specified with a first character P followed by an underscore
as the second 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'.

Functions for computing norms:

P_LANGE General matrix

P_LANHE (complex) Hermitian matrix

P_LANHS Upper Hessenberg matrix

P_LANSY Symmetric matrix

P_LANTR Trapezoidal matrix

Level 2 BLAS versions of the block routines:

P_GEBD2 reduce a general matrix to bidiagonal form

P_GEHD2 reduce a square matrix to upper Hessenberg form

P_GELQ2 compute an LQ factorization without pivoting

P_GEQL2 compute a QL factorization without pivoting

P_GEQR2 compute a QR factorization without pivoting

P_GERQ2 compute an RQ factorization without pivoting

P_GETF2 compute the LU factorization of a general matrix

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

P_ORG2L (real) generate the orthogonal matrix from PxGEQLF

P_ORG2R (real) generate the orthogonal matrix from PxGEQRF

P_ORGL2 (real) generate the orthogonal matrix from PxGEQLF

P_ORGR2 (real) generate the orthogonal matrix from PxGERQF

P_ORM2L (real) multiply by the orthogonal matrix from PxGEQLF

P_ORM2R (real) multiply by the orthogonal matrix from PxGEQRF

P_ORML2 (real) multiply by the orthogonal matrix from PxGELQF

P_ORMR2 (real) multiply by the orthogonal matrix from PxGERQF

P_ORMR3 (real) multiply by the orthogonal matrix from PxTZRZF

P_POTF2 compute the Cholesky factorization of a positive definite matrix

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

P_SYTD2 (real) reduce a symmetric matrix to tridiagonal form

P_TRTI2 compute the inverse of a triangular matrix

P_UNG2L (complex) generate the unitary matrix from PxGEQLF

P_UNG2R (complex) generate the unitary matrix from PxGEQRF

P_UNGL2 (complex) generate the unitary matrix from PxGEQLF

P_UNGR2 (complex) generate the unitary matrix from PxGERQF

P_UNM2L (complex) multiply by the unitary matrix from PxGEQLF

P_UNM2R (complex) multiply by the unitary matrix from PxGEQRF

P_UNML2 (complex) multiply by the unitary matrix from PxGELQF

P_UNMR2 (complex) multiply by the unitary matrix from PxGERQF

P_UNMR3 (complex) multiply by the unitary matrix from PxTZRZF

Other ScaLAPACK auxiliary routines:

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

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

P_LACGV (complex) conjugates a complex vector of length n

P_LACHKIEEE (real) performs a simple check for the features of the IEEE standard

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

P_LACONSB (real) looks for two consecutive small subdiagonal elements

P_LACP2 copies all or part of a distributed matrix to another distributed matrix

P_LACP3 (real) copies from a global parallel array into a local

replicated array or vice versa.

P_LACPY copy all or part of a distributed matrix to another distributed matrix

P_LAED0 Used by PxSTEDC.

P_LAED1 (real) Used by PxSTEDC.

P_LAED2 (real) Used by PxSTEDC.

P_LAED3 (real) Used by PxSTEDC.

P_LAEDZ (real) Used by PxSTEDC.

P_LAEVSWP moves the eigenvectors from where they are computed to a

standard block cyclic array

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

matrix

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

HQR from EISPACK)

P_LAHRD reduce NB columns of a general matrix to Hessenberg form

P_LAIECTB (real) computes the number of negative eigenvalues in

where the sign bit is assumed to be bit 32.

P_LAIECTL (real) computes the number of negative eigenvalues in

where the sign bit is assumed to be bit 64.

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

P_LAPIV applies permutation matrix to a general distributed matrix

P_LAPV2 pivoting

P_LAQGE equilibrate a general matrix

P_LAQSY equilibrate a symmetric matrix

P_LARED1D (real) Redistributes an array assuming that the input

array, BYCOL, is distributed across rows and that all

process columns contain the same copy of BYCOL.

P_LARED2D Redistributes an array assuming that the input array,

BYROW, is distributed across columns and that all process

rows contain the same copy of BYROW. The output array,

BYALL, will be identical on all processes.

P_LARF apply (multiply by) an elementary reflector to a general

rectangular matrix.

P_LARFB apply (multiply by) a block reflector or its transpose/

conjugate-transpose to a general rectangular matrix.

P_LARFC (complex) apply (multiply by) the conjugate-transpose

of an elementary reflector to a general matrix.

P_LARFG generate an elementary reflector (Householder matrix).

P_LARFT form the triangular factor of a block reflector

P_LARZ apply (multiply by) an elementary reflector as returned by

P_TZRZF to a general matrix.

P_LARZB apply (multiply by) a block reflector or its transpose/

conjugate transpose as returned by P_TZRZF to a general matrix.

P_LARZC (complex) apply (multiply by) the conjugate transpose of

an elementary reflector as returned by P_TZRZF to a

general matrix.

P_LARZT form the triangular factor of a block reflector as returned

by P_TZRZF.

P_LASCL multiplies a general rectangular matrix by a real scalar CTO/CFROM

P_LASE2

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

the off-diagonals

P_LASMSUB (real) looks for a small subdiagonal element from the bottom

of the matrix that it can safely set to zero.

P_LASNBT computes the position of the sign bit of a double precision

floating point number

P_LASRT

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

P_LASWP Perform a series of row interchanges

P_LATRA computes the trace of a distributed matrix

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

matrix to tridiagonal form

P_LATRS solve a triangular system with scaling to prevent overflow

P_LATRZ reduces an upper trapezoidal matrix to upper triangular form

P_LAUU2 Unblocked version of P_LAUUM

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

P_LAWIL forms the Wilkinson transform