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

疑似乱数生成器の均等分布次元を計算する [詳解]

#include <AlgorithmEquidistribution.hpp>

公開メンバ関数

 AlgorithmEquidistribution (const ECGenerator &rand, int bit_length, int mexp=0)
 コンストラクタ [詳解]
 
 ~AlgorithmEquidistribution ()
 デストラクタ [詳解]
 
int get_all_equidist (int veq[])
 vビット精度の均等分布次元を計算する。 v = bit_len から 1までの均等分布次元を計算して、veq[] に入れる。返却値はv=1からbit_len までの均等分布次元の理論的上限との 差の総和である。 [詳解]
 
int get_equidist (int *sum_equidist)
 vビット精度の均等分布次元を計算する。 [詳解]
 

詳解

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

疑似乱数生成器の均等分布次元を計算する

PIS法(原瀬)によって疑似乱数生成器の出力の均等分布次元を計算する アルゴリズム

テンプレート引数
U疑似乱数生成器の出力の型
Vパラメータ生成器の出力の型

構築子と解体子

template<typename U, typename V = U>
MTToolBox::AlgorithmEquidistribution< U, V >::AlgorithmEquidistribution ( const ECGenerator rand,
int  bit_length,
int  mexp = 0 
)
inline

コンストラクタ

PIS法の特徴としてvビット精度均等分布次元を計算する際に、k(v+1) の計算時の中間結果を利用してk(v)の計算の手間を省くことができる。この クラスではその特徴を反映してk(v)のvをbit_len から1まで変化さ せて一度に求めることができるようになっている。

引数
rand均等分布次元計算可能な疑似乱数生成器
bit_length均等分布次元を計算するMSBからのビット長, k(v)のv の最初の値
mexpメルセンヌ指数、指定しなければ状態空間サイズ。 可約生成器の場合は指定する必要がある。

参照先 MTToolBox::AbstractGenerator< U >::bitSize(), MTToolBox::linear_generator_vector< U, V >::next_state().

template<typename U, typename V = U>
MTToolBox::AlgorithmEquidistribution< U, V >::~AlgorithmEquidistribution ( )
inline

デストラクタ

関数詳解

template<typename U , typename V >
int MTToolBox::AlgorithmEquidistribution< U, V >::get_all_equidist ( int  veq[])

vビット精度の均等分布次元を計算する。 v = bit_len から 1までの均等分布次元を計算して、veq[] に入れる。返却値はv=1からbit_len までの均等分布次元の理論的上限との 差の総和である。

警告
AlgorithmEquidistribution をコンストラクトしてから、 get_all_equidist() または、get_equidist() のどちらか一方を1回し か呼び出すことはできない。
引数
[out]veqv ビット精度の均等分布次元の配列
戻り値
実際のvビット精度の均等分布次元と理論的上限の差の総和

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

template<typename U , typename V >
int MTToolBox::AlgorithmEquidistribution< U, V >::get_equidist ( int *  sum_equidist)

vビット精度の均等分布次元を計算する。

コンストラクタで指定したbit_length についてk(v)を計算して返す。 sum_equidist には、1 から bit_len -1 までの均等分布次元と理論的上限の 差の総和が返される。

警告
AlgorithmEquidistribution をコンストラクトしてから、 get_all_equidist() または、get_equidist() のどちらか一方を1回し か呼び出すことはできない。
引数
sum_equidist1からbit_len -1 までの理論的上限との差の総和
戻り値
bit_length ビット精度の均等分布次元

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