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

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

IMSL Cライブラリ 8.6 リリース - C/C++向け数値・統計ライブラリ CUDA7.5対応など

IMSL C/C++ライブラリの新しいバージョンがリリースされました。

IMSL C 数値計算ライブラリ 新機能と特長 | ローグウェーブ

今回のリリースは新しいプラットフォームの追加がメインで、その他パフォーマンスが改善されアルゴリズムが追加されました。日本語ドキュメントページからサポート環境表やリリースノートなどをご覧ください。英語ドキュメントにはユーザーガイドや関数カタログなどもあります。

主な変更点

パフォーマンスとメモリ効率を改善し、多くの要望対応とバグフィックスが行われました。詳細はリリースノートをご覧ください。

新しい最適化関数

min_uncon_polytope(MathのChapter 8: Optimization 最適化) : DFO法 (derivative free optimization、導関数が不要なアルゴリズム)を使い、目的関数の微分が利用できない場合に区分的に関数の値を比較し、非拘束型の最適化問題の極小値を求めるものです。ネルダー・ミード法(Nelder–Mead method)を参照してください。

使用例として関数 { \displaystyle
f({\bf x})=100{(x_2-{x_1}^2)}^2+{(1-x_1)}^2
} の極小値を求めてみましょう(この関数は滑らかですが)。

 
#include <imsl.h>
#include <stdio.h>
 
void fcn(int n, float x[], float *f);
 
#define N 2
int main() {
    float xguess[N] = {-1.2, 1.0};
    float *x, fvalue;
    float ftol = 1.0e-7, s = 1.0;
 
    x = imsl_f_min_uncon_polytope(fcn, N,
        IMSL_XGUESS, xguess,
        IMSL_TOLERANCE, ftol,
        IMSL_FVALUE, &fvalue,
        IMSL_SIDE_LENGTH, &s,
        0);
 
    printf("The best estimate for the minimum value of the\n");
    printf("function is x = (%4.2f, %4.2f) with\n", x[0], x[1]);
    printf("function value fvalue = %12.6e\n", fvalue);
 
}
 
void fcn(int n, float x[], float *f)
{
    float t1, t2;
    t1 = x[0]*x[0]-x[1];
    t2 = 1.0-x[0];
    *f = 100.0*t1*t1 + t2*t2;
 
}

実行すると、

The best estimate for the minimum value of the
function is x = (1.00, 1.00) with
function value fvalue = 2.126065e-007

という出力が得られ、(x1,x2)=(1.0,1.0)の場所で最小値が得られることが分かりました。

決定木の強化

decision_tree(StatのChapter 13: Data Mining データマイニング)に 新しく引数を追加し、ALACART( Breiman, Friedman, Olshen and Stone (1984)) と C4.5(Quinlan) のアルゴリズムでどの情報量基準(information criteria) を利用するか選べるようになりました。これにより各ノードで精度よく分岐が計算できるようになります。

プラットフォームの更新

最新のOSやコンパイラが追加されましたWindows 10、 Red Hat 7.1、 SUSE 12、Visual Studio 2015、 Intel 15.0です。また、NVIDIA CUDA 7.5に対応しました。

7.5は2015年9月にリリースされた現時点で最新のCUDA環境であり、半精度浮動小数点型FP16や疎行列対応の強化、プロファイラの精密化などが追加されています。CUDA 7.5についてはローグウェーブが昨年11月にリリースした並列デバッガ TotalView 8.15.10も対応しており、その際に紹介していますのでご覧ください。

blog.roguewave.jp

お問い合わせ

お気軽にお問い合わせフォームからご連絡ください。また、関連する過去記事もご覧ください。

blog.roguewave.jp

blog.roguewave.jp

blog.roguewave.jp

ローグウェーブ セールスエンジニア 柄澤(からさわ)