Porovnání knihoven lineární algebry - Comparison of linear algebra libraries
Následující tabulky poskytují srovnání lineární algebra softwarové knihovny, buď specializované nebo univerzální knihovny s významným pokrytím lineární algebry.
Hustá lineární algebra
Obecná informace
Tvůrce | Jazyk | První veřejné vydání | Nejnovější stabilní verze | Dostupnost zdrojového kódu | Licence | Poznámky | |
---|---|---|---|---|---|---|---|
ALGLIB[1] | Projekt ALGLIB | C ++, C #, FreePascal, VBA | 2006 | 3.12.0 / 08.2017 | Volný, uvolnit | GPL / komerční | Knihovna numerické analýzy pro obecné účely s rozhraními C ++ a C #. |
ATLAS | R. Clint Whaley a kol. | C | 2001 | 3.10.3 / 07.2016 | Volný, uvolnit | BSD | Automaticky vyladěná implementace BLAS. Zahrnuje také rozklady LU a Cholesky. |
Dlib | Davis E. King | C ++ | 2006 | 19.7 / 09/2017 | Volný, uvolnit | Zvýšit | Knihovna šablon C ++; váže se na optimalizovaný BLAS, jako je Intel MKL; Zahrnuje maticové rozklady, nelineární řešiče a nástroje pro strojové učení |
Vědecká knihovna GNU[2] | Projekt GNU | C, C ++ | 1996 | 2.5 / 06.2018 | Volný, uvolnit | GPL | Knihovna numerické analýzy pro obecné účely. Zahrnuje podporu lineární algebry. |
Numerické knihovny IMSL | Rogue Wave Software | C, Java, C #, Fortran, Python | 1970 | mnoho komponent | Nesvobodný | Proprietární | Knihovna numerické analýzy pro obecné účely. |
LAPACK[3][4] | Fortran | 1992 | 3.9.0 / 11.2019 | Volný, uvolnit | 3-klauzule BSD | Numerická knihovna lineární algebry s dlouhou historií | |
MKL | Intel | C ++, Fortran | 2003 | Aktualizace 2020.0 1. 1. 2020 | Nesvobodný | Licence na zjednodušený software Intel | Knihovna numerických analýz optimalizovaná pro procesory Intel |
Math.NET Numerics | C. Rüegg, M. Cuda a kol. | C# | 2009 | 3.20 / 07.2017 | Volný, uvolnit | Licence MIT | Knihovna numerické analýzy C # s podporou lineární algebry |
Číselná knihovna NAG | Skupina numerických algoritmů | C, Fortran | 1971 | mnoho komponent | Nesvobodný | Proprietární | Knihovna numerické analýzy pro obecné účely. |
NMath | Software CenterSpace | C# | 2003 | 7.1 / prosinec 2019 | Nesvobodný | Proprietární | Matematické a statistické knihovny pro .NET Framework |
SciPy[5][6][7] | Myšlenka | Krajta | 2001 | 1.0.0 / 10.2017 | Volný, uvolnit | BSD | Na základě Pythonu |
Vlastní | Benoît Jacob | C ++ | 2008 | 3.3.7 / 12.2018 | Volný, uvolnit | MPL2 | Eigen je knihovna šablon C ++ pro lineární algebru: matice, vektory, numerické řešiče a související algoritmy. |
Pásovec[8][9] | NICTA | C ++ | 2009 | 9.200 / 10.2018 | Volný, uvolnit | Licence Apache 2.0 | Knihovna šablon C ++ pro lineární algebru; zahrnuje různé rozklady a faktorizace; syntaxe (API ) je podobný MATLAB. |
librsb | Michele Martone | C, Fortran, M4 | 2011 | 1.2 / září 2016 | Volný, uvolnit | GPL | Vysoce výkonné vícevláknové primitivy pro velké řídké matice. Operace podpory iteračních řešičů: násobení, trojúhelníkové řešení, změna měřítka, maticový vstup / výstup, maticové vykreslování. Mnoho variant: např .: symetrická, hermitská, složitá, čtyřnásobná přesnost. |
Typy a operace matic
Typy matic (speciální typy, jako jsou dvouúrovňové / třířadé nejsou uvedeny):
- Nemovitý - obecné (nesymetrické) skutečné
- Komplex - obecný (nesymetrický) komplex
- SPD - symetrický pozitivní určitý (skutečný)
- HPD - Hermitian pozitivní určitý (komplexní)
- SY - symetrický (skutečný)
- ON - Hermitian (komplex)
- BND - kapela
Operace:
- TF - trojúhelníkové faktorizace (LU, Cholesky)
- Z - ortogonální faktorizace (QR, QL, generalizované faktorizace)
- EVP - problémy s vlastním číslem
- SVD – rozklad singulární hodnoty
- GEVP - zobecněný EVP
- GSVD – generalizované SVD
Nemovitý | Komplex | SPD | HPD | SY | ON | BND | TF | Z | EVP | SVD | GEVP | GSVD | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ALGLIB | Ano | Ano | Ano | Ano | Ne | Ne | Ne | Ano | Ano | Ano | Ano | Ano | Ne |
ATLAS | Ano | Ano | Ano | Ano | Ne | Ne | Ne | Ano | Ne | Ne | Ne | Ne | Ne |
Dlib | Ano | Ano | Ano | Ano | Ano | Ano | Ne | Ano | Ano | Ano | Ano | Ne | Ne |
Vědecká knihovna GNU | Ano | Ano | Ano | Ano | Ne | Ne | Ne | Ano | Ano | Ano | Ano | Ano | Ne |
ILNumerics.Net | Ano | Ano | Ano | Ano | Ne | Ne | Ne | Ano | Ano | Ano | Ano | Ne | Ne |
Numerické knihovny IMSL | Ano | Ano | Ano | Ano | Ne | Ne | Ano | Ano | Ne | Ano | Ano | Ano | Ne |
LAPACK | Ano | Ano | Ano | Ano | Ano | Ano | Ano | Ano | Ano | Ano | Ano | Ano | Ano |
MKL | Ano | Ano | Ano | Ano | Ano | Ano | Ano | Ano | Ano | Ano | Ano | Ano | Ano |
Číselná knihovna NAG | Ano | Ano | Ano | Ano | Ano | Ano | Ano | Ano | Ano | Ano | Ano | Ano | Ano |
NMath | Ano | Ano | Ano | Ano | Ano | Ano | Ano | Ano | Ano | Ano | Ano | Ne | Ne |
SciPy (Balíčky Pythonu) | Ano | Ano | Ano | Ano | Ne | Ne | Ne | Ano | Ano | Ano | Ano | Ne | Ne |
Vlastní | Ano | Ano | Ano | Ano | Ano | Ano | Ano | Ano | Ano | Ano | Ano | Ano | Ne |
Pásovec | Ano | Ano | Ano | Ano | Ano | Ano | Ne | Ano | Ano | Ano | Ano | Ano | Ne |
Reference
- ^ Bochkanov, S., & Bystritsky, V. (2011). ALGLIB - multiplatformní knihovna numerické analýzy a zpracování dat. Projekt ALGLIB. Novgorod, Rusko.
- ^ Gough, B. (2009). Referenční příručka vědecké knihovny GNU. Network Theory Ltd.
- ^ Anderson, E., Bai, Z., Bischof, C., Blackford, S., Dongarra, J., Du Croz, J., ... & Sorensen, D. (1999). Uživatelská příručka LAPACK. SIAM.
- ^ Anderson, E., Bai, Z., Dongarra, J., Greenbaum, A., McKenney, A., Du Croz, J., ... & Sorensen, D. (1990, listopad). LAPACK: Přenosná knihovna lineární algebry pro vysoce výkonné počítače. In Proceedings of the 1990 ACM / IEEE conference on Supercomputing (pp. 2–11). IEEE Computer Society Press.
- ^ Jones, E., Oliphant, T., & Peterson, P. (2001). SciPy: Open source vědecké nástroje pro Python.
- ^ Bressert, E. (2012). SciPy a NumPy: přehled pro vývojáře. „O'Reilly Media, Inc.“.
- ^ Blanco-Silva, F. J. (2013). Učení SciPy pro numerické a vědecké výpočty. Packt Publishing Ltd.
- ^ Sanderson, C., & Curtin, R. (2016). Pásovec: knihovna C ++ založená na šabloně pro lineární algebru. Journal of Open Source Software, 1 (2), 26.
- ^ Sanderson, C. (2010). Armadillo: Otevřená knihovna C ++ lineární algebry pro rychlé prototypování a výpočetně náročné experimenty (str. 84). Technická zpráva, NICTA.