「数値計算」の版間の差分
(FMLIB) |
(→数値計算ライブラリ) |
||
行44: | 行44: | ||
任意精度ライブラリ C++ Fortran 90/95 | 任意精度ライブラリ C++ Fortran 90/95 | ||
*http://www-an.acs.i.kyoto-u.ac.jp/~fujiwara/exflib/ | *http://www-an.acs.i.kyoto-u.ac.jp/~fujiwara/exflib/ | ||
+ | |||
+ | === FFTSS === | ||
+ | |||
+ | 国産の離散フーリエ変換用ライブラリ。 | ||
+ | FFTW3とインターフェイス互換で、MPI / OpenMP による並列処理に対応。 | ||
+ | 配列サイズは2の巾乗。 | ||
+ | |||
+ | *http://www.ssisc.org/fftss/ | ||
=== FFTW === | === FFTW === |
2009年11月1日 (日) 00:56時点における版
数値計算関係のノウハウ/メモ
数値計算ライブラリ
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
Exflib
任意精度ライブラリ C++ Fortran 90/95
FFTSS
国産の離散フーリエ変換用ライブラリ。 FFTW3とインターフェイス互換で、MPI / OpenMP による並列処理に対応。 配列サイズは2の巾乗。
FFTW
離散フーリエ変換用のライブラリ。 → FFTWを参照して下さい。
FMLIB
任意精度ライブラリ Fortran77/90
FreeFEM++
有限要素法数値計算パッケージ
GMP
任意精度の数値計算ライブラリ。
GSL
GNUな科学計算用数値計算ライブラリ。C/C++用。
- http://sources.redhat.com/gsl/
- http://www.gnu.org/software/gsl/manual/gsl-ref_toc.html
- http://www.cbrc.jp/~tominaga/translations/gsl/index.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, C LAPACK
Linear Algebra PACKage. 線形代数の各種計算を行う定番のライブラリ。詳しくは Wikipedia:LAPACK などを参照して下さい。 MacOSXでは、Developer's kit の一部として lapack やその他のライブラリをインストールしてくれます。
コンパイルオプションの指定方法は、
$ gcc -framework vecLib ___.c
もしくは
$ gcc -Wl,-framework -Wl,vecLib ___.c
のようにします。
ヘッダファイルは
#include <vecLib/vecLib.h>
とするか、何らかの方法で /System/Library/Frameworks/vecLib.framework/Versions/Current/Headers/clapack.h を include すれば良いでしょう。
- 上記ファイルを同じディレクトリにコピーする
- #include <clapack.h> と書いて gcc に -I/System/Library/Frameworks/vecLib.framework/Versions/Current/Headers を渡す
- /usr/include にシンボリックリンクを貼る etc.
LAPACK のサブルーチンは、そもそも Fortran で書かれている。 従って、配列の定義や引数の渡し方などのプログラミング手法(流儀)が、 通常の C 言語のものとは大きく異なっていることに注意する。
Fortran 言語では、 HPC の gfortran を使う場合は、 コンパイル時に以下のオプションを追加するだけで良い。
$ gfortran -Wl,-framework -Wl,Accelerate ___.f
Intel Fortran では、付属の MKL ライブラリに LAPACK 関数群が含まれている。
関連情報:
- LAPACK
- http://pw.elec.kitami-it.ac.jp/ueda/etc/sample.htm
- http://developer.apple.com/documentation/Darwin/Reference/ManPages/man7/LAPACK.7.html
- LAPACK Tips
- http://www.alab.t.u-tokyo.ac.jp/~bond/doc/clapack.html
- Mixed C and Fortran...and some LAPACK
- 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/
- LAPACK サンプルプログラム集(日本語案内付) -http://www.nag-j.co.jp/lapack/index.htm
liboctave
- http://vision.kuee.kyoto-u.ac.jp/~hiroaki/numerical/
- http://vision.kuee.kyoto-u.ac.jp/~nob/doc/liboctave/liboctave.html
- Octave
NAG
- 英国Oxford 商用 数値計算ライブラリ
- NAG数値計算ライブラリにはFFT、最適化、最小二乗法、固有値問題、偏微分方程式、常微分方程式、
- 曲面・曲線フィッティング等の科学技術計算ルーチン群と、分散分析、時系列予測、主成分分析、
- クラスタ分析などの統計計算ルーチン群を約1500提供。現在提供されている製品のバージョンはMark21。
同製品の一部にはMKLが含まれる。またプラットフォームごとに最適化されたLapackも含まれる。
☆NAG Fortran Library, Mark 21(Fortran,VBA等から利用可能)
- FLAMP21D9L - Apple Power Mac (Mac OS X), NAGWare f95, Double Precision
- FLMI621DCL - Apple Intel Mac OS X (64-bit), Intel Fortran Double Precision (ILP64)
- FLMIN21DCL - Apple Intel Mac OS X, Intel Fortran 32-bit
- FLMIN21D9L - Apple Intel Mac OS X, NAGWare f95, Double Precision
- FLMI621D9L - Apple Intel Mac OS X (64-bit), NAGWare f95, Double Precision
搭載される関数リスト一覧(NAG Fortran Library) http://www.nag-j.co.jp/naglib/fl/funclist.htm
☆NAG C Library, Mark 8(C/C++言語版,Java、VBA等からも利用可能)
- CLAMP08DAL - Apple Power Mac, Mac OS X I Gnu C (32-bit)
- CLMIN08DGL - Apple Intel Mac OSX, GNU C (32-bit)
- CLMI608DGL - Apple Intel Mac OSX GNU C(64-bit)
搭載される関数リスト一覧(NAG C Library) http://www.nag-j.co.jp/naglib/cl/funclist.htm
☆NAG parallel library(クラスタ(MPI)並列ライブラリ) multi-coreCPUにも並列対応
- FDAMP03DG - Apple Power Mac (Mac OS X)
搭載される関数リスト一覧(NAG parallel library) http://www.nag-j.co.jp/naglib/fd/funclist.htm
☆NAG dataMining component(データマイング関数ルーチンライブラリ) C、C++、VBA、PERL、Java、C#、Python等の言語からの呼び出しが可。 決定木、回帰の木、ニューラルネットワークなどの各種分析機能 各種データクリーニングの機能がライブラリとして提供
- DRAMP20DA - Apple Power Mac, Mac OS X
アカデミック価格あり。 http://www.nag-j.co.jp/news/intelMacLib/index.htm
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
数値計算ツール(早稲田大・大石さん)
MacResearch
Fortran入門
Lapackサンプルプログラム集(日本語)