MTToolBox  0.2.10
公開型 | 公開メンバ関数
MTToolBox::AlgorithmBestBits< U, V > クラステンプレート

テンパリングパラメータを探索するアルゴリズム(MT用) [詳解]

#include <AlgorithmBestBits.hpp>

MTToolBox::AlgorithmBestBits< U, V > の継承関係図
MTToolBox::AlgorithmTempering< U, V >

公開型

typedef temper_params< U > tempp
 テンパリングパラメータのクラス [詳解]
 

公開メンバ関数

 AlgorithmBestBits (int out_bit_length, const int shift_values[], int param_num, int limit_v)
 
 ~AlgorithmBestBits ()
 デストラクタ [詳解]
 
int operator() (TemperingCalculatable< U, V > &rand, bool verbose=false)
 テンパリングパラメータを探索する [詳解]
 
bool isLSBTempering () const
 LSBからのテンパリングかを示す。常にfalse。 [詳解]
 
- 基底クラス MTToolBox::AlgorithmTempering< U, V > に属する継承公開メンバ関数
virtual ~AlgorithmTempering ()
 仮想デストラクタ(必須) [詳解]
 

詳解

template<typename U, typename V = U>
class MTToolBox::AlgorithmBestBits< U, V >

テンパリングパラメータを探索するアルゴリズム(MT用)

疑似乱数生成器の高次元均等分布性を改善するために、テンパリングパ ラメータを探索するアルゴリズム。このアルゴリズムはMTDCのテンパリン グパラメータ探索をシミュレートする。

警告
テンパリングパラメータの探索をしても十分良い高次元均等 分布が得られない場合は、状態遷移関数の変更を考慮した方がよい。状 態遷移関数で十分ビットミックスされていない場合、単純なテンパリン グで均等分布次元を最大化することはできないだろう。
テンプレート引数
U疑似乱数生成器の出力の型, 符号なし型であること、例えば uint32_t など。
Vパラメータ生成器の出力の型

型定義メンバ詳解

template<typename U , typename V = U>
typedef temper_params<U> MTToolBox::AlgorithmBestBits< U, V >::tempp

テンパリングパラメータのクラス

構築子と解体子

template<typename U , typename V = U>
MTToolBox::AlgorithmBestBits< U, V >::AlgorithmBestBits ( int  out_bit_length,
const int  shift_values[],
int  param_num,
int  limit_v 
)
inline
引数
[in]out_bit_lengthテンパリングパラメータのビット長, 通常は出力のビット長と等しいと思われる。
[in]shift_valuesテンパリングパラメータと対になるシフト数。 正は左シフト。現状では右シフトには対応していない。
[in]param_numテンパリングパラメータの数, MTDCでは2。 7を越えないこと。実際には 2 の場合しかテストしていない。 この値を大きくすると使用メモリおよび実行時間が著しく増大するであろう。
[in]limit_vテンパリングパラメータを上位何ビットまでテンパリングするか。 ただし、この値+以後のシフト量だけテンパリングする。この値を大きくすると 使用メモリおよび実行時間が著しく増大するであろう。
template<typename U , typename V = U>
MTToolBox::AlgorithmBestBits< U, V >::~AlgorithmBestBits ( )
inline

デストラクタ

関数詳解

template<typename U , typename V = U>
bool MTToolBox::AlgorithmBestBits< U, V >::isLSBTempering ( ) const
inlinevirtual

LSBからのテンパリングかを示す。常にfalse。

戻り値
常にfalse

MTToolBox::AlgorithmTempering< U, V >を再実装しています。

template<typename U , typename V = U>
int MTToolBox::AlgorithmBestBits< U, V >::operator() ( TemperingCalculatable< U, V > &  rand,
bool  verbose = false 
)
inlinevirtual

テンパリングパラメータを探索する

テンパリングパラメータを生成し、均等分布次元を計算してよいテ ンパリングパラメータを決定する。求められたよいテンパリングパ ラメータは疑似乱数生成器にセットされる。

引数
[in,out]rand疑似乱数生成器
[in]verbose余分な情報を出力するフラグ
戻り値
0

MTToolBox::AlgorithmTempering< U, V >を実装しています。

参照先 MTToolBox::AbstractGenerator< U >::bitSize(), MTToolBox::TemperingCalculatable< U, V >::resetReverseOutput(), MTToolBox::TemperingCalculatable< U, V >::setTemperingPattern(), MTToolBox::TemperingCalculatable< U, V >::setUpTempering().


このクラス詳解は次のファイルから抽出されました: