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 ]NICTAC++ 2009 12.6.6 / 10.2023 Frei Apache-Lizenz 2.0C++ Template-Bibliothek für lineare Algebra; beinhaltet verschiedene Zerlegungen und Faktorisierungen; Syntax ( API ) ist ähnlich wie bei MATLAB .
ATLASR. 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 BSDBlaze 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 GPLBlitz++ 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.
DlibDavis 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
EigenBenoît Jacob C++ 2008 3.4.0 / 08.2021 Frei MPL2Eigen 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-LizenzFastor 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 GPLUniverselle Bibliothek für numerische Analysen. Beinhaltet grundlegende Unterstützung für lineare Algebra.
IMSL Numerische BibliothekenRogue Wave SoftwareC, 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-BSDNumerische lineare Algebra-Bibliothek mit langer Geschichte
librsbMichele Martone C, Fortran, M4 2011 1.2.0 / 09.2016 Frei GPLHochleistungsfä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.
oneMKLIntel 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 NumerikC. Rüegg, M. Cuda, et al. C# 2009 5.0.0 / 04.2022 Frei MIT-LizenzC#-Bibliothek für numerische Analyse mit Unterstützung für lineare Algebra
Matrix-VorlagenbibliothekJeremy 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 BibliothekDie Gruppe für numerische AlgorithmenC, Fortran 1971 viele Komponenten Nicht frei Eigentumsrechtlich geschützt Allgemeine Bibliothek für numerische Analysen.
NMathCenterSpace-SoftwareC# 2003 7.1 / 12.2019 Nicht frei Eigentumsrechtlich geschützt Mathematik- und Statistikbibliotheken für das .NET Framework
SciPy [ 9 ] [ 10 ] [ 11 ]EnthoughtPython 2001 1.11.1 / 6.2023 Frei BSDBasierend auf Python
Xtensor [ 12 ]S. Corlay, W. Vollprecht, J. Mabille et al. C++ 2016 0.21.10 / 11.2020 Frei 3-Klausel-BSDXtensor 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
ALGLIBJa Ja Ja Ja NEIN NEIN NEIN Ja Ja Ja Ja Ja NEIN
ATLASJa Ja Ja Ja NEIN NEIN NEIN Ja NEIN NEIN NEIN NEIN NEIN
DlibJa Ja Ja Ja Ja Ja NEIN Ja Ja Ja Ja NEIN NEIN
GNU Scientific LibraryJa Ja Ja Ja NEIN NEIN NEIN Ja Ja Ja Ja Ja Ja
ILNumerics.NetJa Ja Ja Ja NEIN NEIN NEIN Ja Ja Ja Ja NEIN NEIN
IMSL Numerische BibliothekenJa Ja Ja Ja NEIN NEIN Ja Ja NEIN Ja Ja Ja NEIN
LAPACKJa Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja
oneMKLJa Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja
NAG Numerische BibliothekJa Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja
NMathJa 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
EigenJa Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja Ja NEIN
GürteltierJa Ja Ja Ja Ja Ja NEIN Ja Ja Ja Ja Ja NEIN

Referenzen

  1. ^ Bochkanov, S., & Bystritsky, V. (2011). ALGLIB – eine plattformübergreifende Bibliothek für numerische Analysen und Datenverarbeitung. ALGLIB-Projekt.
  2. ^ Sanderson, C., & Curtin, R. (2016). Armadillo: eine templatebasierte C++-Bibliothek für lineare Algebra. Journal of Open Source Software, 1(2), 26.
  3. ^ 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.
  4. ^ "Bitbucket" .
  5. ^ 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)
  6. ^ Gough, B. (2009). GNU scientific library reference manual. Network Theory Ltd.
  7. ^ Anderson, E., Bai, Z., Bischof, C., Blackford, S., Dongarra, J., Du Croz, J., ... & Sorensen, D. (1999). LAPACK-Benutzerhandbuch. SIAM.
  8. 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 .
  9. ^ Jones, E., Oliphant, T., & Peterson, P. (2001). SciPy: Open-Source-Werkzeuge für wissenschaftliche Anwendungen in Python.
  10. ^ Bressert, E. (2012). SciPy und NumPy: Ein Überblick für Entwickler. " O'Reilly Media, Inc.
  11. ^ Blanco-Silva, FJ (2013). Learning SciPy for numerical and scientific computing. Packt Publishing Ltd.
  12. ^ "Xtensor-stack/Xtensor" . GitHub . 13. Februar 2022.