The subroutines in LAPACK are classified as follows:
driver routines, each of which solves a complete
problem, for example solving a system of linear equations, or computing the
eigenvalues of a real symmetric matrix. Users are recommended to use a driver
routine if there is one that meets their requirements. They are listed in
Section 2.3.
computational routines, each of which performs a
distinct computational task, for example an LU factorization, or the
reduction of a real symmetric matrix to tridiagonal form. Each driver routine
calls a sequence of computational routines. Users (especially software
developers) may need to call computational routines directly to perform tasks,
or sequences of tasks, that cannot conveniently be performed by the driver
routines. They are listed in
Section 2.4.
utility routines, which perform such nonnumeric
functions as error handling, clock checks, machine parameter determination,
and character comparison.
auxiliary routines cannot be downloaded
individually but rather are supplied with the LAPACK routines that call them.
Auxiliary routines can be classified as follows:
routines that perform subtasks of block algorithms -- in particular,
routines that implement unblocked versions of the algorithms;
routines that perform some commonly required low-level computations, for
example scaling a matrix, computing a matrix-norm, or enerating an
elementary Householder matrix; some of these may be of interest to numerical
analysts or software developers and could be considered for future additions
to the BLAS;
a few extensions to the BLAS, such as routines for applying complex
plane rotations, or matrix-vector operations involving complex symmetric
matrices (the BLAS themselves are not strictly speaking part of LAPACK).
A list of the auxiliary routines, with brief descriptions of their
functions, is given in
Appendix B.
testing routines, which are used for verifying
the numerical correctness of LAPACK computational routines.
Also included are test matrix generators.
timing routines, which are used for evaluating
the performance of LAPACK computational routines.