インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス
mcg31m1 エンジンのメモリー割り当てを行い、1 つまたは複数のシードで初期化するルーチンです。
svrng_engine_t svrng_new_mcg31m1_engine( uint32_t seed )
svrng_engine_t svrng_new_mcg31m1_engine_ex( int num, uint32_t *pseed )
seed |
エンジンの初期状態。 |
num |
拡張ルーチン向けの初期値の数。0 (seed を 1 に設定)、1 (seed を pseed[0] に設定)、または SIMD_WIDTH を設定できます。 |
pseed |
拡張ルーチン向けの初期値を含む配列へのポインター。 |
svrng_new_mcg31m1_engine 関数は、mcg31m1 エンジン (C++11 標準) のメモリー割り当てを行い、1 つの seed 値で初期化します。関数の拡張バージョン svrng_new_mcg31m1_engine_ex は、個別の定数でベクトルステート全体の初期化する必要がある場合に対応するため、複数の値を受け付けます。
名前 |
説明 |
---|---|
SVRNG_STATUS_ERROR_MEMORY_ALLOC |
メモリー割り当てに失敗 |
SVRNG_STATUS_ERROR_BAD_PARAM1 |
不正な引数: num |
SVRNG_STATUS_ERROR_BAD_PARAM2 |
不正な引数: pseed |
初期化されたエンジンへのポインターまたは NULL (エラーの場合)。
mcg31m1 は、次の式で表される単純な 32 ビットの乗法合同擬似乱数ジェネレーターです。
xi+1 = (a*xi) mod m
乗数 a = 1132489760
係数 m = 2147483647 (=231-1) 範囲: [0,MAX)、MAX = m