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

#include <AlgorithmRecursionAndTempering.hpp>

公開メンバ関数

 AlgorithmRecursionAndTempering (AbstractGenerator< V > &bg, const AlgorithmPrimitivity &primitivity=MersennePrimitivity)
 コンストラクタ [詳解]
 
bool search (TemperingCalculatable< U, V > &lg, AlgorithmTempering< U, V > &st1, AlgorithmTempering< U, V > &st2, bool verbose=false, std::ostream &os=std::cout, bool no_lsb=false)
 状態遷移パラメータとテンパリングパラメータを探索する。 [詳解]
 
bool search (TemperingCalculatable< U, V > &lg, AlgorithmTempering< U, V > &st, bool verbose=false, std::ostream &os=std::cout)
 MSBからの均等分布次元のみを向上させたい場合の探索を行う。 状態遷移関数のパラメータは探索する。 [詳解]
 
int getWeight ()
 特性多項式のハミングウェイトを返す [詳解]
 
int getDelta ()
 均等分布次元の理論値との差の総和を返す。 [詳解]
 
const NTL::GF2X & getCharacteristicPolynomial ()
 状態遷移関数の特性多項式を返す。 [詳解]
 

詳解

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

警告
このクラスでは、パラメータ探索をする疑似乱数生成器の状態空間のサイズは メルセンヌ指数であると想定されている。
  1. 状態遷移関数の特性多項式が原始多項式となるような疑似乱数生成 器のパラメータを探索する。
  2. 均等分布次元がよくなるようなテンパリングパラメータを探索する。
テンプレート引数
U疑似乱数生成器の出力の型, 符号なし型であること
Vパラメータ生成器の出力の型

構築子と解体子

template<typename U , typename V = U>
MTToolBox::AlgorithmRecursionAndTempering< U, V >::AlgorithmRecursionAndTempering ( AbstractGenerator< V > &  bg,
const AlgorithmPrimitivity primitivity = MersennePrimitivity 
)
inline

コンストラクタ

引数
bgパラメータをランダムサーチするための疑似乱数生成器を指定する。 この疑似乱数生成器に限り、GF(2)線形である必要はない。疑似乱数生成器である 必要すらない。
primitivity原始性判定アルゴリズム。 デフォルトはメルセンヌ 素数周期用のもの。

関数詳解

template<typename U , typename V = U>
const NTL::GF2X& MTToolBox::AlgorithmRecursionAndTempering< U, V >::getCharacteristicPolynomial ( )
inline

状態遷移関数の特性多項式を返す。

戻り値
状態遷移関数の特性多項式
template<typename U , typename V = U>
int MTToolBox::AlgorithmRecursionAndTempering< U, V >::getDelta ( )
inline

均等分布次元の理論値との差の総和を返す。

戻り値
均等分布次元の理論値との差の総和
template<typename U , typename V = U>
int MTToolBox::AlgorithmRecursionAndTempering< U, V >::getWeight ( )
inline

特性多項式のハミングウェイトを返す

戻り値
特性多項式のハミングウェイト
template<typename U , typename V = U>
bool MTToolBox::AlgorithmRecursionAndTempering< U, V >::search ( TemperingCalculatable< U, V > &  lg,
AlgorithmTempering< U, V > &  st1,
AlgorithmTempering< U, V > &  st2,
bool  verbose = false,
std::ostream &  os = std::cout,
bool  no_lsb = false 
)
inline

状態遷移パラメータとテンパリングパラメータを探索する。

引数
lgテンパリングパラメータ計算可能な疑似乱数生成器
st1テンパリングパラメータ探索アルゴリズム
st2テンパリングパラメータ探索アルゴリズム(LSB)
verbose余分な情報を出力するフラグ
os出力ストリーム
no_lsbLSBからのテンパリングをしない
戻り値
true 原始多項式を発見しテンパリングパラメータを設定した場合
引数
lgGF(2)-linear pseudo random number generator whose parameters are to be searched.
st1Algorithm for searching tempering parameters.
st2Algorithm for searching tempering parameters from LSB.
verboseif true redundant messages will be outputed.
osoutput stream for redundant messages.
no_lsbif true, st2 will not be used.
戻り値
false if no tempering parameters which gives proper state transition function are found.

参照先 MTToolBox::AbstractGenerator< U >::bitSize(), MTToolBox::AlgorithmEquidistribution< U, V >::get_all_equidist(), MTToolBox::RecursionSearchable< U, V >::getParamString(), MTToolBox::AlgorithmTempering< U, V >::isLSBTempering(), MTToolBox::isPrime(), MTToolBox::TemperingCalculatable< U, V >::resetReverseOutput(), MTToolBox::TemperingCalculatable< U, V >::setReverseOutput().

参照元 MTToolBox::AlgorithmRecursionAndTempering< U, V >::search().

template<typename U , typename V = U>
bool MTToolBox::AlgorithmRecursionAndTempering< U, V >::search ( TemperingCalculatable< U, V > &  lg,
AlgorithmTempering< U, V > &  st,
bool  verbose = false,
std::ostream &  os = std::cout 
)
inline

MSBからの均等分布次元のみを向上させたい場合の探索を行う。 状態遷移関数のパラメータは探索する。

引数
lgテンパリングパラメータ計算可能な疑似乱数生成器
stテンパリングパラメータ探索アルゴリズム
verbose余分な情報を出力するフラグ
os出力ストリーム
戻り値
特性多項式が原始多項式となるような状態遷移パラメータを発見した

参照先 MTToolBox::AlgorithmRecursionAndTempering< U, V >::search().


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