LAPACK
| LAPACK
| |
|---|---|
| Basisdaten
| |
| Erscheinungsjahr | 1992 |
| Aktuelle Version | 3.12.1[1] (8. Januar 2025) |
| Betriebssystem | plattformunabhängig |
| Programmiersprache | Fortran 90 |
| Kategorie | Programmbibliothek für: Lineare Algebra |
| Lizenz | BSD |
| netlib.org/lapack/ | |
Linear Algebra Pack (LAPACK) ist eine Programmbibliothek unter der BSD-Lizenz, die Algorithmen aus dem Bereich der numerischen linearen Algebra enthält. Die Bibliothek wurde ursprünglich in FORTRAN 77 geschrieben, wurde jedoch mit Erscheinen der Version 3.2 auf Fortran 90 umgestellt. Die Bibliothek umfasst effiziente Routinen zur Lösung linearer Gleichungssysteme, linearer Ausgleichsprobleme und von Eigenwertproblemen. Dazu werden die numerischen Verfahren der linearen Algebra benutzt, u. a. QR-Zerlegung, Householdertransformation, Singulärwertzerlegung.
Als Hilfsbibliothek nutzen die Routinen in LAPACK für elementare Operationen der linearen Algebra das Softwarepaket Basic Linear Algebra Subprograms (BLAS). In der Version Lapack95[2] werden Eigenschaften von Fortran 95 zur Vereinfachung der Schnittstelle genutzt.
LAPACK ist eine Fortentwicklung der älteren Bibliothek LINPACK, die speziell auf die damals üblichen Vektorrechner zugeschnitten war. In LAPACK wurde die elementare lineare Algebra ausgelagert und mit einer definierten Schnittstelle Basic Linear Algebra Subprograms (BLAS) verwendet. In BLAS werden z. B. moderne Cache-Techniken effektiv umgesetzt. Portierungen von BLAS können auf neuere oder speziellere Architekturen zugeschnitten werden, deren Vorteile so sofort in LAPACK nutzbar werden. LAPACK hat das aus den 1960er Jahren stammende Paket EISPACK weitgehend ersetzt.
LAPACK wurde für wichtige Architekturen portiert. Solche Portierungen sind ScaLapack für MIMD-Architekturen und PLapack für abstrakte parallele Architekturen.
LAPACK kann trotz der Programmierung in Fortran aus mehreren Sprachen verwendet werden:
- clapack für C wurde durch automatische Portierung mit f2c erstellt.
- lapacke ist ein Wrapper für C mit Headerfiles.
- LAPACK++ ist ein Wrapper für C++.
- Armadillo ist ein Wrapper für C++.
- JLapack für Java wurde mit f2j erstellt.
- HBlas ist eine Portierung nach Haskell.
- LACAML ist eine Portierung nach OCaml.
- cula ist eine Teilimplementierung in Cuda (Nvidia).
- Gonum ist eine Teilimplementierung in Go (Programmiersprache) (native)
Auf netlib.org steht die Referenzimplementierung von LAPACK und BLAS bereit. Nach dem Download wird mit make zunächst BLAS, dann LAPACK und falls gewünscht, der C-Wrapper lapacke erzeugt. Der C-Wrapper cblas für BLAS muss getrennt installiert werden.
Optimierte Implementierungen werden von Computerherstellern (AMD: AOCL, Cray: libsci, IBM: Essl, Intel: MKL) und OS-Distributoren (Fedora, Red Hat, Suse, Mandriva, Debian, Cygwin, Ubuntu, Gentoo, Quantian, OpenBSD, FreeBSD, NetBSD, Dragonfly BSD) angeboten.
Siehe auch
Weblinks
- LAPACK Homepage on Netlib.org
- LAPACK Users’ Guide
- LAPACK++ Homepage
- NEW LAPACK++ Homepage (versions 1.9 and above) on Sourceforge.net
- PLAPACK
- Dokumentation und Downloads für JLapack
Einzelnachweise
- ↑ Release 3.12.1. 8. Januar 2025 (abgerufen am 26. Januar 2025).
- ↑ https://www.netlib.org/lapack95/
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.