読者です 読者をやめる 読者になる 読者になる

ローグウェーブソフトウェアのブログ

開発をシンプルに 安全で高品質のコードを 素早くお客様のもとへ

IMSL Cライブラリ スタートガイド

IMSL

C/C++数値計算・統計解析ライブラリ – IMSL Cライブラリを使ってみよう

IMSL Cライブラリ は、C/C++ で書かれたアプリケーションに簡単に組み込むことができる数値計算・統計解析用関数のライブラリです。IMSL Cライブラリの特徴の一つは、その幅広い対応プラットフォームと利用環境に依存しない使いやすさにあります。

ここでは、IMSL Cライブラリをご利用いただく為の初歩的な手順、製品のダウンロードからインストール、環境変数の指定、プログラミング例、コンパイルから実行までを簡単にご紹介します。

IMSL Cライブラリのご利用環境

IMSL Cライブラリは、WindowsLinuxをはじめ多くのプラットフォームとコンパイラのバージョンでお使いいただけます。

IMSL Cライブラリをダウンロードする

原則として、ローグウェーブソフトウェアの全製品は弊社FTPサイトからダウンロードできます。

IMSL Cライブラリをインストールする

Windows版のIMSL CライブラリはGUIベースのインストーラが用意されています。Linux版のIMSL Cライブラリはキャラクタベースのインストーラが用意されています。それぞれ操作手順は違いますが、いずれも簡単に、どこにでも製品をインストールでき、インストールにかかる時間は5-10分程度です。

Windows版のインストール手順

始めに、ダウンロードしたファイルに含まれる”setup.exe”を管理者権限で実行してください。IMSL Cライブラリのインストーラが立ち上がります。 f:id:RWSJapan:20160302144233j:plain

ご利用の環境を選び“Next”ボタンをクリックし、以後インストーラ指示に従ってインストールを進めてください。インストーラに求められる主な確認及び入力項目は以下の通りです。

1. オプションライブラリのインストール
  IMSL Cライブラリに加えMKL、CUDA Tool Kitをインストールするか、
  或いはIMSL Cライブラリのみインストールするかを選択
2. 環境変数の自動設定の可否
3. ライセンス規約への同意(License Agreement)
4. ライセンス番号の入力(Registration)
  製品を購入された方は「ライセンス証書」の番号、無償トライアルの方は“999999”を入力
5. インストールフォルダ指定(Chose Destination Location)

最後に入力項目(5.)の画面の下部にある“Install”ボタンを押すとインストールが開始されます。通常、2,3分でインストールは終了します。

なお、詳細なインストール手順は、ローグウェーブソフトウェアのHPにあるインストールガイドを参照してください。

f:id:RWSJapan:20160224174525j:plain

Linux版のインストール手順

始めに、ダウンロードしたファイルに含まれる”cd_install”を管理者権限で実行してください。

./cd_install

f:id:RWSJapan:20160302151021j:plain

IMSL Cライブラリのインストーラが立ち上がり、最初にライセンス規約条項が表示されます。スペースキーまたはEnterキーで表示を進め、以後表示されるコメントの指示に従ってインストールを進めてください。インストーラに求められる主な確認及び入力項目は以下通りです。

1. ライセンス規約への同意(License Agreement)
2. インストールディレクトリ指定
 インストールする製品番号を入力後、’x’で次のステップへ
3. インストールオプションの指定
4. ライセンス番号の入力
  製品を購入された方は「ライセンス証書」の番号、無償トライアルの方は“999999”を入力

4.ライセンス番号入力の後、確認のコメント“Is this correct?”が表示されます。’Y’または’Yes’を入力するとインストールが開始されます。通常、3,4分でインストールは終了します。

尚、表示されるメッセージの概要と詳細なインストール手順は、ローグウェーブソフトウェアのHPにあるインストールガイドを参照してください。

環境変数を指定する

Windows環境の場合、インストール時に“2)環境変数の自動設定の可否”で“Yes”を入力した場合は追加の設定は必要ありません。“No”を入力した場合は、ローグウェーブソフトウェアのHPにあるインストールガイドに従い必要な環境変数の設定を行ってください。

Linux環境の場合、IMSL Cライブラリをインストールしたディレクトリ下部にあるbinディレクトリ直下に、環境変数設定用のシェルスクリプト(cnlsetup)が用意されています。ご利用のシェル環境に合わせて実行してください。

・bash,bsh,kshの場合  : . cnlsetup.sh
・cshの場合       :  source cnlsetup.csh

IMSL Cライブラリを使ったプログラム例

IMSL Cライブラリのユーザズガイド:Mathの 第8章 最適化に記載されています二次計画法問題を解く関数quadratic_progの例題(Example 1)をご紹介します。関数 quadratic_prog は一般線形等式/不等式拘束に従う、凸二次計画問題の Goldfarb とIdnani の双対二次計画 (QP) アルゴリズム の実装に基づいています。

f:id:RWSJapan:20160307152749j:plain

この例題では、下記の様に2つの制約関数の下で目的関数fを最小にするx1からx5を計算しています。

f:id:RWSJapan:20160302152838j:plain

    #include <imsl.h>
    int main()
    {
       int        m = 2;
       int        n = 5;
       int        meq = 2;
       float      *x;
       float      h[ ] = {2.0, 0.0, 0.0, 0.0, 0.0,
                           0.0, 2.0,-2.0, 0.0, 0.0,
                           0.0,-2.0, 2.0, 0.0, 0.0,
                           0.0, 0.0, 0.0, 2.0,-2.0,
                           0.0, 0.0, 0.0,-2.0, 2.0};
       float      a[ ] = {1.0, 1.0, 1.0, 1.0, 1.0,
                           0.0, 0.0, 1.0,-2.0,-2.0};
       float      b[ ] = {5.0, -3.0};
       float      g[ ] = {-2.0, 0.0, 0.0, 0.0, 0.0};
                                   /* Solve the QP problem */
       x = imsl_f_quadratic_prog (m, n, meq, a, b, g, h, 0);
                               /* Print x */
       imsl_f_write_matrix ("x", 1, 5, x, 0);
    }

ご覧の通り関数の使い方はとっても簡単です。 最初にinclude文でimsl.hを指定して(1行目)、IMSLの関数quardatic_progに必要な引数を指定(18行目)します。

ちなみにhは目的関数のヘッセ行列、gは目的関数の線形項の係数ベクトル、aは制約関数の左辺の係数行列、bは制約関数の右辺の係数ベクトルです。さらに、計算結果が見やすいようにIMSLの関数write_matrixを使ってxの値を出力(20行目)しています。

プログラムのコンパイルと実行例

Windows環境の場合、コマンドプロンプトを立ち上げ、ソースコードが保存されているフォルダーに移動して次のコマンドを実行してください。Microsoft Visual Studioを使ってコンパイル・実行する場合は、ローグウェーブソフトウェアのHPにあるインストールガイドを参照してください。

コンパイル  :  %CC% Example1.c %LINK_CNL%
実行     :  Exmaple1.exe

Linux環境の場合、前述の“cnlsetup”を使った環境変数の設定を行った後、ソースコードが保存されているディレクトリに移動して次のコマンドを実行してください。

コンパイル  :  $CC –o Example1 $CFLAGS Example1.c $LINK_CNL
実行     :  ./Example1

以下の様な計算結果が表示されます。

                        X
  1          2          3          4          5
  1          1          1          1          1

IMSL Cライブラリのコンパイル・リンクオプションの詳細、MKLやCUDA Tool Kitの利用方法については、ローグウェーブソフトウェアのHPにあるインストールガイドを参照してください。また、IMSL Cライブラリのユーザズガイドにはすべての関数の詳細な説明と共に、関数毎に複数の例題が添付されています。

まとめ

数値計算や統計解析のアルゴリズムは、たとえそれが単純なものであっても、それをコード化し汎用的に利用してゆくことは簡単ではありません。自作コードの信頼性はもとより、計算の精度は十分か、そもそもその問題に対してアルゴリズム選択が正しかったかなど検証すべき点は多々あります。

IMSL Cライブラリは数百もの数値計算、統計解析関数が幅広い環境で利用できる汎用的なライブラリです。その解は保証され、インストールも簡単、コーディングも環境依存性がなくとても使いやすい製品です。一度IMSL Cライブラリを試してみませんか?

お問い合わせ

ローグウェーブソフトウェア製品に関するお問い合わせ / トライアル(評価版)リクエストのお申込みはこちら!

http://www.roguewave.jp/downloads/index.htmlwww.roguewave.jp

その他、ローグウェーブ ソフトウェア製品に関連する記事もご覧ください

blog.roguewave.jp

blog.roguewave.jp

blog.roguewave.jp

blog.roguewave.jp

by M.S