MTToolBox
0.2.10
|
疑似乱数生成器の高次元均等分布性を改善するために、テンパ リングパラメータを探索するアルゴリズム [詳解]
#include <AlgorithmPartialBitPattern.hpp>
公開メンバ関数 | |
int | operator() (TemperingCalculatable< U, V > &rand, bool verbose=false) |
テンパリングパラメータを探索する。 [詳解] | |
bool | isLSBTempering () const |
このテンパリングパラメータ探索がLSBからの探索であるかどうか [詳解] | |
基底クラス MTToolBox::AlgorithmTempering< U, V > に属する継承公開メンバ関数 | |
virtual | ~AlgorithmTempering () |
仮想デストラクタ(必須) [詳解] | |
疑似乱数生成器の高次元均等分布性を改善するために、テンパ リングパラメータを探索するアルゴリズム
このアルゴリズムはMTGPのテンパリングパラメータを探索するために開 発され、TinyMTのテンパリングパラメータ探索にも使われている。
U | 疑似乱数生成器の出力の型, 例えば uint32_t など。 |
V | パラメータ生成器の出力の型 |
bit_len | テンパリングパラメータのビット長, 通常は出力のビッ ト長と等しいと思われる。 |
param_num | テンパリングパラメータの数, MTGPでは4, TinyMT では 1 |
try_bit_len | 出力のうちテンパリングされる部分の長さ。上位 からこのビット数だけがテンパリングされる。 |
step | 一度に何ビットずつビットパターンを生成するか。この 数を大きくすると実行時間が延びるであろう。MTGP では 5 ビットずつ 生成している。 |
lsb | このフラグが指定されると、上位ビットと下位ビットが反 転されて均等分布次元が計算される。つまり下位ビットの均等分布次元 をあげたい時に指定する。TestU01のBigCrushには下位ビットの均等分 布次元を改善することによってパス可能性が高まるテストがある。 |
|
inlinevirtual |
このテンパリングパラメータ探索がLSBからの探索であるかどうか
MTToolBox::AlgorithmTempering< U, V >を再実装しています。
|
inlinevirtual |
テンパリングパラメータを探索する。
この処理の呼び出しは長時間かかる可能性がある。
rand | テンパリングパラメータを探索する疑似乱数生成器 |
verbose | 冗長な出力をするフラグ |
MTToolBox::AlgorithmTempering< U, V >を実装しています。
参照先 MTToolBox::TemperingCalculatable< U, V >::resetReverseOutput(), MTToolBox::TemperingCalculatable< U, V >::setReverseOutput().