LAPACK, the Linear Algebra PACKage, is a
software libraryfor numerical computing written in Fortran 77. It provides routines for solving systems of simultaneous linear equations, least-squares solutions of linear systems of equations, eigenvalueproblems, Householder transformationto implement QR decompositionon a matrix and singular valueproblems. [http://www.netlib.org/lapack95/ Lapack95] uses features of Fortran 95 to simplify the interface of the routines. LAPACK is licensed under a three-clause BSD style license [http://www.netlib.org/lapack/COPYING] .
LAPACK can be seen as the successor to the original
LINPACK, which was designed to run on the then-modern vector computers with shared memory. LAPACK, in contrast, depends upon the Basic Linear Algebra Subprograms (BLAS) in order to effectively exploit the caches on modern cache-based architectures,and thus can run orders of magnitude faster than LINPACK on such machines, given a well-tuned BLAS implementation. LAPACK hasalso been extended to run on distributed-memory systems in later packages such as ScaLAPACKand PLAPACK.
LAPACK has largely superseded the Eigenvalue routines from
EISPACK, and the linear equations and linear least-squares problems from LINPACK.
There are several language bindings available:
clapackfor C (especially useful if there is no FortranCompiler available, as it is already preprocessed with f2c)
* [http://www.ocaml.info/home/ocaml_sources.html#LACAML LACAML] for
* Boost uBLAS [http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl?Linear_Algebra_With_UBLAS numerics bindings] ( [http://svn.boost.org/svn/boost/sandbox/boost/numeric/bindings/ svn] ) for C++.
Details on this scheme can be found in the [http://www.netlib.org/lapack/lug/node24.html Naming scheme] section in LAPACK Users' Guide.
Use of LAPACK with other programming languages
Many programming environments today support the use of libraries with C binding. The LAPACK routines can be used like C functions if a few restrictions are observed. See [http://www.physics.oregonstate.edu/~rubin/nacphy/lapack/cprogp.html using LAPACK with C] for useful hints and examples.
* [http://www.netlib.org/lapack/ LAPACK homepage] on Netlib.org
* [http://www.netlib.org/lapack/lug/ LAPACK Users' Guide]
* [http://math.nist.gov/lapack++/ LAPACK++ Homepage]
* [http://lapackpp.sourceforge.net/ NEW LAPACK++ Homepage (versions 1.9 and above)] on Sourceforge.net
* [http://developers.sun.com/prodtech/cc/perflib_index.html Sun Performance Library] optimized LAPACK for Solaris OS on SPARC/x86/x64 and Linux
* [http://www.osreviews.net/reviews/sci/lapack OS Reviews article on LAPACK]
* [http://www.cs.utexas.edu/~plapack/ PLAPACK]
* [http://www.physics.oregonstate.edu/~rubin/nacphy/lapack/cprogp.html How to use LAPACK with C]
Wikimedia Foundation. 2010.