GNU Scientific Library Guide in Japanese

Last Update: May 11, 2010

目次

  1. GSLとは?
  2. どこにあるの?
  3. 何で今更「数値計算ライブラリ」を作るの?
  4. Install方法(Linux編)
  5. Install方法(Windows + Visual Studio編)
  6. Compile方法(Linux編)
  7. どんな機能が使えますか?(一部サンプルソース付き)
  8. これからどうなるの?

GSL とは?

GNU Scientific Libraryの略称です。日本語にすると「GNU科学技術計算ライブラリ」ってな感じでしょうか。基本的にはANSI Cで記述された数値計算・統計計算等の関数の集合体です。線型計算についてはBLAS(Basic Linear Algebra Suprograms)をサポートしてます。

どこにあるの?

今の所(2010-05-11現在),本家はhttp://www.gnu.org/software/gsl/です。Version 1.14までリリースされています。
GSLのソースはGNUのミラーにはたいてい置いてあります。Ringサーバだと,GNU/gsl/以下にあります。

何で今更「数値計算ライブラリ」を作るの?

 ん〜,詳細は"GNU Scientific Library -- Design document"からの"1. Motivation"を読んで欲しいですが,どうやら作者の皆さんはGPLで,なおかつANSI Cからトリッキーなことをせずに呼び出せる,教育的な文書を備えた数値計算ライブラリが欲しかったらしいです。Netlib,GAMS, Numerical Recipes, SLATEC, NAC/IMSL等々のライブラリの問題点(機能よりもライセンス問題が大きいようですが)を列挙して,結局は数値計算のエキスパートが参加してくれるよーな枠組みを作ろうということになったようです。LGPLでも駄目だってんだから厳しいですな。

Install方法(Linux編)

yum または apt-getコマンドでインストール

RepositoryにGSLのRPMが登録されていれば

# yum install gsl

または

# apt-get install gsl

でインストールできます。ただし,CentOS 4 x86_64やVine Linux 3.2ではVersion 1.5しかありません。検索してみると,Fedoraには常にその時点における最新のRPMが入っているようです。

Linux環境で常に最新版が使いたければ,下記のようにtar ballから直接インストールするのが手っ取り早い方法です。

gsl-x.x.x.tar.gzからコンパイル

 autoconf/automakeを使ってますので(これもmotivationの一つだそーです)基本的には,日本のGNUミラーの一つ(例えばRingサーバ)からgsl-x.x.x.tar.gzをダウンロードして解凍し,"gsl-x.x.x"ディレクトリに移動してから

% ./configure; make; su;
# make install

でいいはずです。インストールするディレクトリ(例えば"/usr/local"を指定する際には

% ./configure --prefix=/usr/local; make; su
# make install

とします。

 ここでついでにgsl-configコマンドを使って

% gsl-config --prefix
/usr/local

とし,prefixの値(下線部)もチェックして置いて下さい。コンパイル時に使います。

Install方法(Windows + Visual Studio編)

本家ではサポート付CDを配布していましたが,もう配布もサポートもしていないようです(2010-05-11現在)。
現在,Free(無料&自由の意味)で使えるVisual Studio用のGSLはお二人の方が配布してます。
バイナリを使うだけなら,VC Expressの環境でも大丈夫です。Cygwin環境でもLinux同様のコンパイル方法(上記参照)が使えますが,本家では推奨していません(Linux上で使ってほしいらしい)。

Compile方法(Linux編)

 GSLの関数を使ったプログラム"example.c"をコンパイルして,"example"という実行ファイルを作るには

% gcc -I/usr/local/include -I/usr/include -L/usr/local/lib -L/usr/lib -oexample example.c -lgsl -lgslcblas -lm

とします。ここで下線部は先ほどチェックしておいたprefixの値です。
 コンパイルして,実行ファイル"example"が出来たら

% ./example

として実行して下さい。この時,

./example: error while loading shared libraries: libgsl.so.0: cannot open shared object file: No such file or directory

というエラーが出たら,

% LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
% export LD_LIBRARY_PATH

と,共有ライブラリへのパスを通してから再度実行して下さい。

どんな機能が使えますか?(一部サンプルソース付き)

これも詳細はマニュアル(日本語に訳された方がいらっしゃいます) を読んで頂きたいですが,所謂数値計算と銘打っている教科書に書いてある内容は大体フォローしているようです。基本的には全てIEEE単精度・倍精度をベースに
というところです(Ver. 1.13現在)。

これからどうなるの?

大幅な機能追加はなさそうですねぇ・・・。小刻みにちまちまと追加されていくようですね。

Tomonori Kouya

<- Go Back