「数値計算」の版間の差分
細 (→Intel Math Kernel Library) |
細 (→GSL) |
||
行60: | 行60: | ||
*http://sources.redhat.com/gsl/ | *http://sources.redhat.com/gsl/ | ||
*http://www.gnu.org/software/gsl/manual/gsl-ref_toc.html | *http://www.gnu.org/software/gsl/manual/gsl-ref_toc.html | ||
− | *http://na-inet.jp/na/gsl. | + | *http://na-inet.jp/na/gsl.html (やや古い) |
=== Intel Math Kernel Library === | === Intel Math Kernel Library === |
2007年7月20日 (金) 00:25時点における版
数値計算関係のノウハウ/メモ
目次
数値計算ライブラリ
ATLAS
Automatically Tuned Linear Algebra Software (ATLAS)
- Absoft Fortran には、ATLAS の 64bit 版が付属しているそうです。
Bayes++
Bayesian Filtering Classes for C++
Kalman filter や各種の非線型フィルタの数値計算ライブラリ
- Bayes 推定(Bayesian forecasting、ベイズ、ベイジアン) については
BLAS
Basic Linear Algebra Subprograms (BLAS) 。ベクトル・行列などの基礎的な演算機能を提供するライブラリ。MacOSX には、(clapack と同様)Developer's kit の一部として、下記のディレクトリ内にインストールされる。
/System/Library/Frameworks/vecLib.framework/
これは、PowerPC 用もしくは Intel-Core 用に最適化されたBLAS のはずです。(どこかに検証情報はあるでしょうか?)
- 上記のIntel-Core 用 BLAS と, 下記の Intel Math Kernel Libraryで提供される BLAS との差異はあるでしょうか?
- Intel Math Kernel Library の BLAS の方はかなり最適化されているのかもしれません. なお Intel C/C++ と gcc とから使えるようです.
- 上記のIntel-Core 用 BLAS と, 下記の Intel Math Kernel Libraryで提供される BLAS との差異はあるでしょうか?
BLAS などの一般的解説もしくは関連情報は、
- http://www.netlib.org/blas/
- http://developer.apple.com/documentation/Darwin/Reference/ManPages/man7/BLAS.7.html
- http://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms
FFTW
離散フーリエ変換用のCライブラリ。任意の次元・サイズ、複素数に対応しているそうです。
FreeFEM++
有限要素法数値計算パッケージ
GMP
任意精度の数値計算ライブラリ。
GSL
GNUな科学計算用数値計算ライブラリ。C/C++用。
- http://sources.redhat.com/gsl/
- http://www.gnu.org/software/gsl/manual/gsl-ref_toc.html
- http://na-inet.jp/na/gsl.html (やや古い)
Intel Math Kernel Library
Intel CPU 用の数値計算ライブラリ詰め合わせセット。 Mac OSX 版は有料製品。(Linux 版は non-commercial 用途ではフリー; Intel C++/Fortran Compiler も同様) Intel Mac 付属の Lapack や BLAS よりも、さらに Intel Core 2 Duo 等向けに最適化されているようです。
- http://www.intel.com/cd/software/products/asmo-na/eng/perflib/mkl/index.htm
- http://www.xlsoft.com/jp/products/intel/perflib/mkl/index.html
- http://www.intel.com/cd/software/products/ijkk/jpn/266858.htm
Intel Integrated Performance Primitives
lapack, clapack
Linear Algebra PACKage. 線形代数の各種計算を行う定番のライブラリ。詳しくは Wikipedia:LAPACK などを参照して下さい。MacOSXでは、Developer's kit の一部として lapack やその他のライブラリをインストールしてくれるはず。コンパイルオプションの指定方法は、
$ gcc -framework vecLib ___.c (もしくは gcc -Wl,-framework -Wl,vecLib ___.c)
そして下記のヘッダファイルを、前もって /usr/local/include ディレクトリ内へコピーしておくと、ソース内の include 宣言文は、#include <clapack.h> で良いはず。
/System/Library/Frameworks/vecLib.framework/Versions/Current/Headers/clapack.h
- 従って、Linux 等におけると等しい #include 文の書き方となるはずです。
- さもない場合の本来の書き方は、#include <vecLib/vecLib.h>
- include <clapack.h> と書きたいだけでしたら、gcc に -I/System/Library/Frameworks/vecLib.framework/Versions/Current/Headers を渡せば良いのではないでしょうか?
- 従って、Linux 等におけると等しい #include 文の書き方となるはずです。
定番ライブラリである lapack, clapack に含まれる線形代数計算ルーチンは強い信頼を受けているようです。
- ただし、(Cではなく、)Fortran 流儀の仕様を引きずっておりますので、多少、面倒な部分も持っているようです。
関連情報:
- http://www.netlib.org/lapack/
- http://pw.elec.kitami-it.ac.jp/ueda/etc/sample.htm
- http://developer.apple.com/documentation/Darwin/Reference/ManPages/man7/LAPACK.7.html
- http://www.sip.eee.yamaguchi-u.ac.jp/kou/lapack.html
- http://www.alab.t.u-tokyo.ac.jp/~bond/doc/clapack.html
- LAPACK User's Guide - http://www.netlib.org/lapack/lug/
- CLapackの使い方 - http://homepage3.nifty.com/~yonishi/Program/CLapack/index.html
- Lapack++の使い方 - http://homepage3.nifty.com/~yonishi/Program/Lapack++/index.html
- LapackをC++で使う - http://www-cms.phys.s.u-tokyo.ac.jp/~naoki/CIPINTRO/LAPACK/
- Google:lapack+row+column+major
- Google:framework+vecLib+macosx
liboctave
- http://vision.kuee.kyoto-u.ac.jp/~hiroaki/numerical/
- http://vision.kuee.kyoto-u.ac.jp/~nob/doc/liboctave/liboctave.html
- Octave
NTL
数論に関係した計算用のライブラリ for C++
- たとえば暗号解読関係や LLL lattice basis reduction などの計算が含まれています。
- http://www.shoup.net/ntl/
SVMTL
The Scalar, Vector, Matrix and Tensor Library for C++
TNT
Template Numerical Toolkit (TNT)
uBLAS
Basic Linear Algegra for C++
数値計算の話題など
- 精度保証付き数値計算付きの処理言語
http://www.oishi.info.waseda.ac.jp/~oishi/slab/slab.htm
- ちなみに Mathematica も任意高精度数値演算を元々備えています。
- MATLAB を利用する数値計算
参考リンク
アルゴリズムデータベース
GNU/Linux ユーザのための数値計算のTips
数値計算ツール(早稲田大・大石さん)