Levels of Routines

Naming Scheme for LAPACK Routines

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.