LAPACK
LAPACK
|
|
---|---|
Basic data
|
|
Current version | 3.9.0 (November 21, 2019) |
operating system | platform independent |
programming language | Fortran 90 |
category | Program library for: linear algebra |
License | BSD |
www.netlib.org/lapack |
LAPACK ( L inear A lgebra pack age ) is a program library under the BSD license , the algorithms in the field of numerical linear algebra contains. The library was originally written in FORTRAN 77 , but was converted to Fortran 90 with the release of version 3.2 . The library includes efficient routines for solving systems of linear equations , linear compensation problems and eigenvalue problems . The numerical methods of linear algebra are used for this purpose. a. QR decomposition , household transformation , singular value decomposition .
The routines in LAPACK use the Basic Linear Algebra Subprograms (BLAS) software package as an auxiliary library for elementary operations in linear algebra . In the Lapack95 version, features of Fortran 95 are used to simplify the interface.
LAPACK is a further development of the older LINPACK library , which was specially tailored to the vector computers that were common at the time . In LAPACK, the elementary linear algebra was outsourced and used with a defined interface Basic Linear Algebra Subprograms ( BLAS ). In BLAS z. B. modern cache techniques implemented effectively. Portings from BLAS can be tailored to newer or more specific architectures, the advantages of which can be used immediately in LAPACK. LAPACK has largely replaced the EISPACK package from the 1960s .
LAPACK has been ported for important architectures. Such ports are ScaLapack for MIMD architectures and PLapack for abstract parallel architectures.
LAPACK can be used from several languages despite programming in Fortran:
- clapack for C was created through automatic porting with f2c .
- lapacke is a wrapper for C with header files.
- LAPACK ++ is a wrapper for C ++ .
- Armadillo is a wrapper for C ++ .
- JLapack for Java was created with f2j .
- HBlas is a port to Haskell.
- LACAML is a port to OCaml.
- cula is a partial implementation in Cuda (Nvidia).
The reference implementation of LAPACK and BLAS is available at netlib.org. After the download, first BLAS, then LAPACK and, if required, the C wrapper lapacke are generated with make. The C-Wrapper cblas for BLAS must be installed separately.
Optimized implementations are made by computer manufacturers (AMD: ACML, Cray: libsci, IBM: Essl, Intel: MKL) and OS distributors (Fedora, RedHat, Suse, Mandriva, Debian, Cygwin, Ubuntu, Gentoo, Quantian, OpenBSD, FreeBSD, NetBSD , Dragonfly BSD).
See also
Web links
- LAPACK Homepage on Netlib.org
- LAPACK Users' Guide
- LAPACK ++ homepage
- NEW LAPACK ++ Homepage (versions 1.9 and above) on Sourceforge.net
- Sun Performance Library optimized LAPACK for Solaris OS on SPARC / x86 / x64 and Linux
- OS Reviews article on LAPACK
- PLAPACK
- How to use LAPACK with C
- Documentation and downloads for JLapack