数値計算

提供: MacWiki
2007年11月4日 (日) 10:24時点における (トーク | 投稿記録)による版

移動: 案内検索

数値計算関係のノウハウ/メモ

数値計算ライブラリ

ATLAS

Automatically Tuned Linear Algebra Software (ATLAS)

Bayes++

Bayesian Filtering Classes for C++

Kalman filter や各種の非線型フィルタの数値計算ライブラリ


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 とから使えるようです.

BLAS などの一般的解説もしくは関連情報は、

FFTW

離散フーリエ変換用のCライブラリ。任意の次元・サイズ、複素数に対応しているそうです。


FreeFEM++

有限要素法数値計算パッケージ

GMP

任意精度の数値計算ライブラリ。

GSL

GNUな科学計算用数値計算ライブラリ。C/C++用。

Intel Math Kernel Library

Intel CPU 用の数値計算ライブラリ詰め合わせセット。 Mac OSX 版は有料製品。(Linux 版は non-commercial 用途ではフリー; Intel C++/Fortran Compiler も同様) Intel Mac 付属の Lapack や BLAS よりも、さらに Intel Core 2 Duo 等向けに最適化されているようです。

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)

そして下記のヘッダファイルを、前もって /usr/local/include ディレクトリ内へコピーしておくと、ソース内の include 宣言文は、#include <clapack.h> で良いはず。

 /System/Library/Frameworks/vecLib.framework/Versions/Current/Headers/clapack.h
    • 従って、Linux 等におけると等しい #include 文の書き方となるはずです。
      • さもない場合の本来の書き方は、#include <vecLib/vecLib.h>
      1. include <clapack.h> と書きたいだけでしたら、gcc に -I/System/Library/Frameworks/vecLib.framework/Versions/Current/Headers を渡せば良いのではないでしょうか?
  • (Cではなく)Fortran 流儀の仕様を引きずっているので、多少、面倒な部分もあります。

関連情報:

liboctave

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

数値計算ツール(早稲田大・大石さん)


Wiki内の関連ページ