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

svrng_new_rand0_engine、svrng_new_rand0_ex

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

構文

svrng_engine_t svrng_new_rand0_engine( uint32_t seed )

svrng_engine_t svrng_new_rand0_engine_ex( int num, uint32_t *pseed )

引数

seed

エンジンの初期状態。

num

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

pseed

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

説明

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

ステータスフラグ

名前

説明

SVRNG_STATUS_ERROR_MEMORY_ALLOC

メモリー割り当てに失敗

SVRNG_STATUS_ERROR_BAD_PARAM1

不正な引数: num

SVRNG_STATUS_ERROR_BAD_PARAM2

不正な引数: pseed

戻り値

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

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

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

xi+1 = (a*xi) mod m

乗数 a = 16807(=75)

係数 m = 2147483647 (=231-1)

範囲: [0,MAX)、MAX = m