LAPACK
Linear Algebra Library


LAPACK is a FORTRAN77 library which solves linear systems and performs eigenvalue analysis.

LAPACK replaces the LINPACK and EISPACK libraries. The LAPACK library is more flexible, has newer algorithms, and can often run much more efficiently than the older libraries.

However, it should be noted that, internally, the library is quite complex. When a user calls a single LAPACK routine, that routine may, in turn, potentially call 30 or more subroutines; trying to understand the logic of the algorithm, or even simply collecting all the routines involved in a single call, can be a painful task. If I was trying to get an understanding of how to implement the QR or SVD algorithm, for instance, I would much prefer to read the LINPACK source code rather than the LAPACK source code! Similarly, it is much easier to convert the LINPACK source code to the C language, rather than the LAPACK source code, simply because the coding is simpler, more straightforward, and does not involve such an elaborate nesting of subroutines.

Many vendors supply a compiled copy of LAPACK, optimized for their hardware, and easily available as a library.

LAPACK includes routines to

The source code and documentation for LAPACK is available through the NETLIB web site.

Related Data and Programs:

BLAS1 is a FORTRAN77 library of vector-vector routines needed by LAPACK.

BLAS2 is a FORTRAN77 library of matrix-vector routines needed by LAPACK.

BLAS3 is a FORTRAN77 library of matrix-matrix routines needed by LAPACK.

EISPACK is an earlier standard package of eigenvalue routines.

ESSL the IBM Engineering and Scientific Subroutine Library, includes an implementation of some of the LAPACK routines.

LAPACK is also available in a FORTRAN90 version.

LAPACK_D is a directory of examples of using the LAPACK routines for linear algebra problems involving double precision real arithmetic.

LINPACK is a FORTRAN77 library of routines which is an earlier standard package of linear system solvers.

LINPLUS is a FORTRAN90 library of simple linear solvers for a variety of matrix formats.

PETSC is a scientific library for use in parallel computation, which includes an implementation of the LAPACK routines.

SVD_DEMO is an executable FORTRAN90 program which demonstrates the singular value decomposition for a simple example.

TEST_EIGEN is a FORTRAN90 library of routines that define various eigenvalue test cases.

TEST_MAT is a FORTRAN90 library of routines which define test matrices, some of which have known determinants, eigenvalues and eigenvectors, inverses, and so on.

Reference:

  1. Edward Anderson, Zhaojun Bai, Christian Bischof, Susan Blackford, James Demmel, Jack Dongarra, Jeremy DuCroz, Anne Greenbaum, Sven Hammarling, Alan McKenney, Danny Sorensen,
    LAPACK User's Guide,
    Third Edition,
    SIAM, 1999,
    ISBN: 0898714478,
    LC: QA76.73.F25L36

Source Code:

Examples and Tests:

There are individual example directories for particular arithmetic models.

List of Routines:

You can go up one level to the FORTRAN77 source codes.


Last revised on 15 February 2006.