【GSLで数値計算1】
GNU科学技術計算ライブラリのインストール(Windows, VisualStudio2017)
本稿は、Windowsで手っ取り早くGNU科学技術計算ライブラリを利用するための環境構築方法を解説します。
GNU科学技術計算ライブラリとは?
GNU科学技術計算ライブラリ(本家ページ)とは、C言語で記述されたオープンソースの科学技術計算関数のライブラリでGNU General Public License(wikipedia)のもとで配布されています。アルファベットの頭文字からGSLとも表記されます。本ライブラリは、その名の通り科学技術分野で用いる数値計算を行うことのできる専門家によって設計された関数が一通り揃っています。本家ページに記述されたライブラリの内容を列挙します。
・複素数(Complex Numbers)
・多項式の求根(Roots of Polynomials)
・特殊関数(Special Functions)
・ベクトル・行列(Vectors and Matrices)
・置換(Permutations)
・整列(Sorting)
・BLASサポート(BLAS Support)
・線形代数(Linear Algebra)
・固有値問題(Eigensystems)
・高速フーリエ変換(Fast Fourier Transforms)
・数値積分(Quadrature)
・乱数(Random Numbers)
・準乱数列(Quasi-Random Sequences)
・乱数分布(Random Distributions)
・統計計算(Statistics)
・ヒストグラム(Histograms)
・タプル(N-Tuples)
・モンテカルロ積分(Monte Carlo Integration)
・焼きなまし法(Simulated Annealing)
・微分方程式(Differential Equations)
・補間(Interpolation)
・数値微分(Numerical Differentiation)
・チェビシェフ近似(Chebyshev Approximation)
・数列収束の加速(Series Acceleration)
・離散ハンケル変換(Discrete Hankel Transforms)
・一元および多次元の方程式の求根(Root-Finding)
・一次元及び多次元空間での非線形最小化問題(Minimization)
・最小二乗フィッティング(Least-Squares Fitting)
・物理定数(Physical Constants)
・IEEE浮動小数点の操作(IEEE Floating-Point)
・離散ウェーブレット変換(Discrete Wavelet Transforms)
・B-スプライン(Basis splines)
・実行統計(Running Statistics)
・スパース行列と線形代数(Sparse Matrices and Linear Algebra)
VisualStudio2017で環境構築
本来であれば本家からソースをダウンロード後、ソースをすべてコンパイルする必要がありますが、結構めんどうなので、 当方で用意したコンパイル後の静的ライブラリとインクルードファイルを所定の位置に配置します。
必要ファイル
(1)インクルードファイル(http://www.natural-science.or.jp/files/gsl_2.4.zip)
(2)静的ライブラリファイル(http://www.natural-science.or.jp/files/lib_gsl_2.4.zip)
設置場所
上記ファイルを解凍後、VisualStudio2017インストール時に生成されたフォルダに配置します。
(1)の解凍後のgslフォルダを以下のフォルダにそのまま入れます。
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.12.25827\include
※このフォルダにはC言語で読み込むincludeファイル(拡張子h)が格納されています。
(2)の解凍後のlibフォルダ内の2つのフォルダ(x64とx86)の中身をそれぞれ、以下のフォルダにそのまま入れます。
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.12.25827\atlmfc\lib\x64
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.12.25827\atlmfc\lib\x86
※このフォルダには64bitと32bit用のライブラリファイル(gsl.lib, gsl.pdb, cblas.lib, cblas.pdb)が格納されています。
動作チェック
動作チェック用のサンプルファイルを用意しました。
→ http://www.natural-science.or.jp/files/gsl_test.zip
解凍後、VisualStudio2017用ソリューションファイル「gsl_test.sln」をダブルクリックしてください。左メニューの「ソースファイル」→「main.cpp」をクリックすることで、次のような画面になると思います。画面中央上の「ローカルWindowsデバッカー」をクリックするとコンパイルから実行までを行うことができます。
このサンプルプログラムは、区間(0,1)の乱数を100,000回生成して10倍して小数を切り捨てて、0から9までのその度数を調べています。
サンプルプログラム
#include#include #include "gsl/gsl_rng.h" int main(void) { //エポック秒を乱数の種として int seed = int(time(0)); //デフォルトの乱数生成器を利用するためのメモリを確保 gsl_rng *r = gsl_rng_alloc(gsl_rng_default); //乱数の種を設定 gsl_rng_set(r, seed); //乱数生成数 int N = 100000; const int MAX = 10; int counter[MAX] = { 0 }; //度数分布の生成 for (int i = 0; i > b; return b; }
実行結果
このようにコンソールへ出力されれば成功です。今後、GSLを用いた数値計算を取り扱って行きます。