Die folgenden Tabellen bieten einen Vergleich von Softwarebibliotheken für lineare Algebra , entweder spezialisierten oder allgemeinen Bibliotheken mit einer umfassenden Abdeckung der linearen Algebra.
Dichte lineare Algebra
allgemeine Informationen
| Schöpfer | Sprache | Erste öffentliche Veröffentlichung | Neueste stabile Version | Verfügbarkeit des Quellcodes | Lizenz | Anmerkungen | |
|---|---|---|---|---|---|---|---|
| ALGLIB [ 1 ] | ALGLIB-Projekt | C++, C#, Python, FreePascal | 2006 | 4.00.0 / 05.2023 | Frei | GPL/kommerziell | Universelle Bibliothek für numerische Analysen mit Schnittstellen für C++, C#, Python und FreePascal. |
| Gürteltier [ 2 ] [ 3 ] | NICTA | C++ | 2009 | 12.6.6 / 10.2023 | Frei | Apache-Lizenz 2.0 | C++ Template-Bibliothek für lineare Algebra; beinhaltet verschiedene Zerlegungen und Faktorisierungen; Syntax ( API ) ist ähnlich wie bei MATLAB . |
| ATLAS | R. Clint Whaley et al. | C | 2001 | 3.10.3 / 07.2016 | Frei | BSD | Automatisch optimierte Implementierung von BLAS. Beinhaltet auch LU- und Cholesky-Zerlegungen. |
| Blaze [ 4 ] | K. Iglberger et al. | C++ | 2012 | 3,8 / 08.2020 | Frei | BSD | Blaze ist eine Open-Source-C++-Mathematikbibliothek mit hoher Leistungsfähigkeit für dichte und dünnbesetzte Arithmetik. |
| Blitz++ | Todd Veldhuizen | C++ | ? | 1.0.2 / 10.2019 | Frei | GPL | Blitz++ ist eine C++ Template-Klassenbibliothek, die leistungsstarke, mehrdimensionale Array-Container für wissenschaftliches Rechnen bereitstellt. |
| Boost uBLAS | J. Walter, M. Koch | C++ | 2000 | 1.84.0 / 12.2023 | Frei | Boost-Softwarelizenz | uBLAS ist eine C++ Template-Klassenbibliothek, die BLAS-Funktionalität der Stufen 1, 2 und 3 für dichte, gepackte und dünnbesetzte Matrizen bereitstellt. |
| Dlib | Davis E. King | C++ | 2006 | 19.24.2 / 05.2023 | Frei | Schub | C++-Template-Bibliothek; bindet an optimierte BLAS-Bibliotheken wie Intel MKL; beinhaltet Matrixzerlegungen, nichtlineare Löser und Werkzeuge für maschinelles Lernen |
| Eigen | Benoît Jacob | C++ | 2008 | 3.4.0 / 08.2021 | Frei | MPL2 | Eigen ist eine C++ Template-Bibliothek für lineare Algebra: Matrizen, Vektoren, numerische Löser und verwandte Algorithmen. |
| Fastor [ 5 ] | R. Poya, AJ Gil und R. Ortigosa | C++ | 2016 | 0.6.4 / 06.2023 | Frei | MIT-Lizenz | Fastor ist eine leistungsstarke Tensor-Bibliothek (festdimensionale mehrdimensionale Arrays) für modernes C++. |
| GNU Scientific Library [ 6 ] | GNU-Projekt | C, C++ | 1996 | 2.7.1 / 11.2021 | Frei | GPL | Universelle Bibliothek für numerische Analysen. Beinhaltet grundlegende Unterstützung für lineare Algebra. |
| IMSL Numerische Bibliotheken | Rogue Wave Software | C, Java, C#, Fortran, Python | 1970 | viele Komponenten | Nicht frei | Eigentumsrechtlich geschützt | Allgemeine Bibliothek für numerische Analysen. |
| LAPACK [ 7 ] [ 8 ] | Fortran | 1992 | 3.12.0 / 11.2023 | Frei | 3-Klausel-BSD | Numerische lineare Algebra-Bibliothek mit langer Geschichte | |
| librsb | Michele Martone | C, Fortran, M4 | 2011 | 1.2.0 / 09.2016 | Frei | GPL | Hochleistungsfähige, multithreadfähige Primitive für große, dünnbesetzte Matrizen. Unterstützung von Operationen für iterative Löser: Multiplikation, Dreiecksauflösung, Skalierung, Matrix-Ein-/Ausgabe, Matrixdarstellung. Zahlreiche Varianten: z. B. symmetrisch, hermitesch, komplex, vierfache Genauigkeit. |
| oneMKL | Intel | C, C++, Fortran | 2003 | 2023.1 / 03.2023 | Nicht frei | Intel vereinfachte Softwarelizenz | Numerische Analysebibliothek, optimiert für Intel-CPUs und -GPUs. Die auf C++ SYCL basierende Referenz-API-Implementierung ist kostenlos im Quellcode verfügbar. |
| Math.NET Numerik | C. Rüegg, M. Cuda, et al. | C# | 2009 | 5.0.0 / 04.2022 | Frei | MIT-Lizenz | C#-Bibliothek für numerische Analyse mit Unterstützung für lineare Algebra |
| Matrix-Vorlagenbibliothek | Jeremy Siek, Peter Gottschling, Andrew Lumsdaine, et al. | C++ | 1998 | 4.0 / 2018 | Frei | Boost -Softwarelizenz | Hochleistungsfähige C++-Bibliothek für lineare Algebra basierend auf generischer Programmierung |
| NAG Numerische Bibliothek | Die Gruppe für numerische Algorithmen | C, Fortran | 1971 | viele Komponenten | Nicht frei | Eigentumsrechtlich geschützt | Allgemeine Bibliothek für numerische Analysen. |
| NMath | CenterSpace-Software | C# | 2003 | 7.1 / 12.2019 | Nicht frei | Eigentumsrechtlich geschützt | Mathematik- und Statistikbibliotheken für das .NET Framework |
| SciPy [ 9 ] [ 10 ] [ 11 ] | Enthought | Python | 2001 | 1.11.1 / 6.2023 | Frei | BSD | Basierend auf Python |
| Xtensor [ 12 ] | S. Corlay, W. Vollprecht, J. Mabille et al. | C++ | 2016 | 0.21.10 / 11.2020 | Frei | 3-Klausel-BSD | Xtensor ist eine C++-Bibliothek für numerische Analysen mit mehrdimensionalen Array-Ausdrücken, Broadcasting und Lazy Computing. |
Matrixtypen und -operationen
Matrixtypen (Sondertypen wie Bidiagonal-/Tridiagonalmatrix sind nicht aufgeführt):
- Reell – allgemein (nicht-symmetrisch) reell
- Komplex – allgemeiner (nicht-symmetrischer) Komplex
- SPD – symmetrisch positiv definit (reell)
- HPD – Hermitesch positiv definit (komplex)
- SY – symmetrisch (reell)
- HE – Hermitesch (komplex)
- BND – Band
Operationen:
- TF – Dreiecksfaktorisierungen (LU, Cholesky)
- OF – orthogonale Faktorisierungen (QR, QL, verallgemeinerte Faktorisierungen)
- EVP – Eigenwertprobleme
- SVD – Singulärwertzerlegung
- GEVP – verallgemeinerte EVP
- GSVD – verallgemeinerte SVD
| Real | Komplex | SPD | HPD | SY | ER | BND | TF | VON | EVP | SVD | GEVP | GSVD | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ALGLIB | Ja | Ja | Ja | Ja | NEIN | NEIN | NEIN | Ja | Ja | Ja | Ja | Ja | NEIN |
| ATLAS | Ja | Ja | Ja | Ja | NEIN | NEIN | NEIN | Ja | NEIN | NEIN | NEIN | NEIN | NEIN |
| Dlib | Ja | Ja | Ja | Ja | Ja | Ja | NEIN | Ja | Ja | Ja | Ja | NEIN | NEIN |
| GNU Scientific Library | Ja | Ja | Ja | Ja | NEIN | NEIN | NEIN | Ja | Ja | Ja | Ja | Ja | Ja |
| ILNumerics.Net | Ja | Ja | Ja | Ja | NEIN | NEIN | NEIN | Ja | Ja | Ja | Ja | NEIN | NEIN |
| IMSL Numerische Bibliotheken | Ja | Ja | Ja | Ja | NEIN | NEIN | Ja | Ja | NEIN | Ja | Ja | Ja | NEIN |
| LAPACK | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja |
| oneMKL | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja |
| NAG Numerische Bibliothek | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja |
| NMath | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | NEIN | NEIN |
| SciPy (Python-Pakete) | Ja | Ja | Ja | Ja | NEIN | NEIN | NEIN | Ja | Ja | Ja | Ja | NEIN | NEIN |
| Eigen | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | Ja | NEIN |
| Gürteltier | Ja | Ja | Ja | Ja | Ja | Ja | NEIN | Ja | Ja | Ja | Ja | Ja | NEIN |
Referenzen
- ^ Bochkanov, S., & Bystritsky, V. (2011). ALGLIB – eine plattformübergreifende Bibliothek für numerische Analysen und Datenverarbeitung. ALGLIB-Projekt.
- ^ Sanderson, C., & Curtin, R. (2016). Armadillo: eine templatebasierte C++-Bibliothek für lineare Algebra. Journal of Open Source Software, 1(2), 26.
- ^ Sanderson, C. (2010). Armadillo: Eine Open-Source-C++-Bibliothek für lineare Algebra für schnelles Prototyping und rechenintensive Experimente (S. 84). Technischer Bericht, NICTA.
- ^ "Bitbucket" .
- ^ Poya, Roman; Gil, Antonio J.; Ortigosa, Rogelio (2017). „Ein leistungsstarkes datenparalleles Tensor-Kontraktionsframework: Anwendung auf gekoppelte Elektromechanik“ . Computer Physics Communications . 216 : 35–52 . Bibcode : 2017CoPhC.216...35P . doi : 10.1016/j.cpc.2017.02.016 . hdl : 10317/17584 .
{{cite journal}}: CS1 maint: multiple names: authors list (link) - ^ Gough, B. (2009). GNU scientific library reference manual. Network Theory Ltd.
- ^ Anderson, E., Bai, Z., Bischof, C., Blackford, S., Dongarra, J., Du Croz, J., ... & Sorensen, D. (1999). LAPACK-Benutzerhandbuch. SIAM.
- Anderson, E., Bai, Z., Dongarra, J., Greenbaum, A., McKenney, A., Du Croz, J., ... & Sorensen, D. (November 1990). LAPACK: Eine portable Bibliothek für lineare Algebra für Hochleistungsrechner. In: Proceedings der ACM/IEEE-Konferenz über Supercomputing 1990 (S. 2–11). IEEE Computer Society Press .
- ^ Jones, E., Oliphant, T., & Peterson, P. (2001). SciPy: Open-Source-Werkzeuge für wissenschaftliche Anwendungen in Python.
- ^ Bressert, E. (2012). SciPy und NumPy: Ein Überblick für Entwickler. " O'Reilly Media, Inc.
- ^ Blanco-Silva, FJ (2013). Learning SciPy for numerical and scientific computing. Packt Publishing Ltd.
- ^ "Xtensor-stack/Xtensor" . GitHub . 13. Februar 2022.
Externe Links
- scipy auf GitHub
- Gürteltier auf GitHub
- mathnet-numerics auf GitHub
