インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス

svrng_new_mcg59_engine、svrng_new_mcg59_ex

mcg59 エンジンのメモリー割り当てを行い、1 つまたは複数のシードで初期化するルーチンです。

構文

svrng_engine_t svrng_new_mcg59_engine( uint32_t seed )

svrng_engine_t svrng_new_mcg59_engine_ex( int num, uint32_t *pseed )

引数

seed

エンジンの初期状態。

num

拡張ルーチン向けの初期値の数。0 (seed を 1 に設定)、1 (seedpseed[0] に設定)、または SIMD_WIDTH を設定できます。

pseed

拡張ルーチン向けの初期値を含む配列へのポインター。

説明

svrng_new_mcg59_engine 関数は、mcg59 エンジン (C++11 標準) のメモリー割り当てを行い、1 つの seed 値で初期化します。関数の拡張バージョン svrng_new_mcg59_engine_ex は、個別の定数でベクトルステート全体の初期化する必要がある場合に対応するため、複数の値を受け付けます。

ステータスフラグ

名前

説明

SVRNG_STATUS_ERROR_MEMORY_ALLOC

メモリー割り当てに失敗

SVRNG_STATUS_ERROR_BAD_PARAM1

不正な引数: num

SVRNG_STATUS_ERROR_BAD_PARAM2

不正な引数: pseed

戻り値

初期化されたエンジンへのポインターまたは NULL (エラーの場合)。

アプリケーション・ノート

mcg59 は、次の式で表される単純な 64 ビットの乗法合同擬似乱数ジェネレーターです。

xi+1 = (a*xi) mod m

乗数 a = 1313

係数 m = 259 範囲: [0,MAX)、MAX = m