線型代数学ライブラリの比較
以下の表では線型代数学ライブラリの比較を示す。
- この一覧は未完成です。加筆、訂正して下さる協力者を求めています。
基本情報
[編集]開発元 | 費用 | 言語 | 特徴 | |
---|---|---|---|---|
Armadillo (線形代数ライブラリ) | Conrad Sanderson | 無料 | C++ | LAPACKと統合されており、様々な行列の分解を最適化された速度で実行できる[1][2][3] |
GNU Scientific Library | GNUプロジェクト | 無料 | C言語 | 汎用の数値計算ライブラリでもある[4] |
IMSL | en:Rogue Wave Software | 有料 | C言語, C#, Java, FORTRAN, Python | 汎用の数値計算ライブラリでもある |
INTLAB | S.M.Rump[5][6][7][8][9] | 有料 | MATLAB/GNU Octave | 区間演算・アフィン演算が使えて、数値線形代数における精度保証付き数値計算に活用されている[5][6][7][8][9] |
LAPACK | 多数 | 無料 | FORTRAN | 数値線形代数のためのライブラリ (LINPACK, EISPACKの後継)[10][11][12][13] |
NAG数値計算ライブラリ | Numerical Algorithms Group | 有料 | C言語/FORTRAN | 汎用の数値計算ライブラリでもある |
ScaLAPACK | 多数 | 無料 | FORTRAN | 分散メモリ型コンピュータ向けのLAPACK |
SciPy | scipy.org community | 無料 | Python | Pythonに数値計算機能を付与するためのライブラリ[14][15][16] |
機能
[編集]以下の表では次の略称を使う
- LS (最小二乗法, Least Square)
- EVP (固有値問題, Eigen Value Problems)
- GEVP (一般化固有値問題, Generalized Eigen Value Problems)
- SVD (特異値分解, Singular Value Decomposition)
- GSVD (一般化特異値分解, en:generalized singular value decomposition)
- NG (不可)、OK (可)
LS | EVP | GEVP | SVD | GSVD | 区間演算 | アフィン演算 | |
---|---|---|---|---|---|---|---|
Armadillo (線形代数ライブラリ) | NG | OK | OK | OK | NG | NG | NG |
GNU Scientific Library | OK | OK | OK | OK | NG | NG | NG |
IMSL | OK | OK | OK | OK | NG | NG | NG |
INTLAB | NG | OK | OK | NG | NG | OK | OK |
LAPACK | OK | OK | OK | OK | OK | NG | NG |
NAG数値計算ライブラリ | OK | OK | OK | OK | OK | NG | NG |
SciPy | OK | OK | NG | OK | NG | NG | NG |
出典
[編集]- ^ Sanderson, C., & Curtin, R. (2016). Armadillo: a template-based C++ library for linear algebra. Journal of Open Source Software, 1(2), 26.
- ^ Sanderson, C. (2010). Armadillo: An open source C++ linear algebra library for fast prototyping and computationally intensive experiments (p. 84). Technical report, NICTA.
- ^ Eddelbuettel, D., & Sanderson, C. (2014). RcppArmadillo: Accelerating R with high-performance C++ linear algebra. Computational Statistics & Data Analysis, 71, 1054-1063.
- ^ Gough, B. (2009). GNU scientific library reference manual. Network Theory Ltd..
- ^ a b S.M. Rump: INTLAB - INTerval LABoratory. In Tibor Csendes, editor, Developments in Reliable Computing, pages 77-104. Kluwer Academic Publishers, Dordrecht, 1999.
- ^ a b 『精度保証付き数値計算の基礎』大石進一 編著、コロナ社、2018年。
- ^ a b Moore, R. E., Kearfott, R. B., & Cloud, M. J. (2009). Introduction to Interval Analysis. SIAM.
- ^ a b Rump, S. M. (2010). Verification methods: Rigorous results using floating-point arithmetic. en:Acta Numerica, 19, 287-449.
- ^ a b Hargreaves, G. I. (2002). Interval analysis in MATLAB. Numerical Algorithms, (2009.1).
- ^ Anderson, E., Bai, Z., Bischof, C., Blackford, S., Dongarra, J., Du Croz, J., ... & Sorensen, D. (1999). LAPACK Users' guide. SIAM.
- ^ Anderson, E., Bai, Z., Dongarra, J., Greenbaum, A., McKenney, A., Du Croz, J., ... & Sorensen, D. (1990, November). LAPACK: A portable linear algebra library for high-performance computers. In Proceedings of the 1990 ACM/IEEE conference on Supercomputing (pp. 2-11). IEEE Computer Society Press.
- ^ 小国力:「LAPACK利用の手引―行列計算パッケージ」、丸善、ISBN 978-4621040768(1995年7月)
- ^ 幸谷智紀:「LAPACK/BLAS入門」、森北出版、ISBN 978-4627848818(2016年12月)
- ^ Jones, E., Oliphant, T., & Peterson, P. (2001). SciPy: Open source scientific tools for Python.
- ^ Bressert, E. (2012). SciPy and NumPy: an overview for developers. " O'Reilly Media, Inc.".
- ^ Blanco-Silva, F. J. (2013). Learning SciPy for numerical and scientific computing. Packt Publishing Ltd.