Rとは
Rはフリーソフトウエアで統計とグラフィックスの言語環境です。検定、クラスタ分析、分類、時系列解析などの統計処理及びプロット出力などのグラフィックス処理が組み込まれています。 各種行列演算機能も組み込まれ、データ処理、解析、出力に優れたソフトウエアです。 スクリプト言語は条件分岐、関数定義、ループなどがサポートされた利用しやすい環境です。 このように便利なRですが、Rの環境からnAGライブラリのルーチンを呼び出す方法をご紹介します。 尚、Rについての詳細は http://www.r-project.org/ をご参照下さい。
RからnAGライブラリを呼び出す方法
RからnAG FortranライブラリDLL版を利用するためには 以下のステップが必要です。
- DLLをロードします
- DLL内のルーチンを呼び出します
最初のステップは Rの関数 dyn.load() により行い、2番目のステップは Rの関数 .Fortran() によりそれぞれ行います。
Rのstorageはそれぞれ以下のFotran型に対応します。
Integer → INTEGER
Double → DOUBLE PRECISION
Complex → DOUBLE COMPLEX
Character → CHARACTER*255
R はサブルーチンの呼び出しはできますが関数の呼び出しは行えません。そのためラッパーを用意する必要があります。
R関数 .Fortran() を利用する際にルーチン名の最後にアンダースコア'_'が必要な場合があります。
詳細やExampleコードは以下のURLをご参照下さい:
http://www.nag.com/numeric/RunderWindows.asp
Rからコールバック関数としてnAGライブラリを利用する方法
以下に示すURLでWindows用のR(バージョン2.7.0)からnAGの最適化問題(関数の最小化)ルーチン「E04AB」を呼び出す方法を説明します。 (これ以外のバージョンやOS環境においてもこの方法は流用可能です) ここで説明される方法はRのWebサイトの「Writing R Extensions」で示される方法に基づきます。
本説明では具体的にnAGライブラリで提供される最適化(optimization)の関数をRから呼び出す方法を説明します。 nAGが提供する最適化関数「E04AB」は1つの連続変数の有限区間内の最少地点(minimum)を被最適化関数値のみから見つけ出す関数です。 この関数はnAG Fortran LibraryのE04ABFおよびnAG C Libraryのe04abcにそれぞれ対応しています。
まず最初にnAG Cライブラリに含まれるe04abcをRから呼び出す方法を示し、その後対応するFortranライブラリルーチンを 呼び出す方法を示します。
Rからコールバック関数としてnAGライブラリを利用するについての詳細URL:
http://www.nag.com/numeric/R_UsingCallBackFunctions.asp