Each subroutine name in ScaLAPACK, which has an LAPACK equivalent, is
simply the LAPACK name prepended by a `P`. Thus, we have relaxed
(violated) the Fortran 77 standard by allowing subroutine names to
be greater than 6-characters in length
and allowing an underscore _ in the names of certain TOOLS routines.

All driver and computational routines have names
of the form **PXYYZZZ**, where for
some driver routines the seventh character is blank.

The second letter, **X**, indicates the data type as follows:

When we wish to refer to a ScaLAPACK routine generically, regardless of data type, we replace the second letter by ``x''. Thus PxGESV refers to any or all of the routines PSGESV, PCGESV, PDGESV, and PZGESV.

The next two letters, **YY**, indicate the type of matrix (or
of the most significant matrix).
Most of these two-letter codes apply to both real and complex matrices;
a few apply specifically to one or the other, as indicated in table
3.1.

**Table 3.1:** Matrix types in the ScaLAPACK naming scheme

A **diagonally dominant-like** matrix
is one for which it is known
*a priori* that pivoting for stability is NOT required in the *LU*
factorization of the matrix. Diagonally dominant matrices themselves are
examples of diagonally dominant-like matrices.

When we wish to refer to a class of routines that performs the same function on different types of matrices, we replace the second, third, and fourth letters by ``xyy''. Thus, PxyySVX refers to all the expert driver routines for systems of linear equations that are listed in table 3.2.

The last three letters **ZZZ** indicate the computation performed.
Their meanings will be explained in section 3.3.
For example, PSGEBRD is a single-precision routine that performs a
bidiagonal reduction (BRD) of a real general matrix.

The names of auxiliary routines follow a similar scheme except that the third and fourth characters YY are usually LA (for example, PSLASCL or PCLARFG). There are two kinds of exception. Auxiliary routines that implement an unblocked version of a block-partitioned algorithm have similar names to the routines that perform the block-partitioned algorithm, with the seventh character being ``2'' (for example, PSGETF2 is the unblocked version of PSGETRF). A few routines that may be regarded as extensions to the BLAS are named similar to the BLAS naming schemes (for example, PCMAX1, PSCSUM1).

Tue May 13 09:21:01 EDT 1997