5.5. C++のクラス

C++では、各mtXに対して次の4つのクラスが名前空間mtlite内に定義される。

mtX, mtX_nt, mtX_nonloop, mtX_nonloop_nt

それぞれが疑似乱数生成器を表すクラスである。4つのクラスの差異は、乱数生成関数mtX_getmtX_get_ntmtX_get_nonloopおよびmtX_get_nonloop_ntの差異と同一である。

クラスmtXの公開インタフェースは次の通り。他の3つのクラスも下記に準じる。

result_type

生成される乱数を表す型。mtlite_result_typeと同一。

state_size

メルセンヌ・ツイスタの状態ベクトルの長さ。単位はresult_typeの型。

mtX(result_type seed), mtX(const result_type key[], unsigned int key_size), mtX(const result_type iv[])

コンストラクタ。与えられた引数で状態を初期化する。順に、初期化関数mtX_init_by_scalarmtX_init_by_arrayおよびmtX_init_by_ivに相当する初期化を行う。

void init(result_type seed), void init(const result_type key[], unsigned int key_size), void init(const result_type iv[])

与えられた引数で状態を初期化する。それぞれの初期化の行い方は、同じ引数を持つコンストラクタと同一である。

result_type operator()()

乱数を1つ取得する。

void dump(::mtX_state_t& state) const

オブジェクトの全内部状態をstateへとコピーする。

void restore(const ::mtX_state_t& state)

オブジェクトの全内部状態をstateからコピーする。