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

GF(2)ベクトルとしてのGF(2)疑似乱数生成器 [詳解]

#include <AlgorithmEquidistribution.hpp>

公開型

typedef EquidistributionCalculatable< U, V > ECGenerator
 均等分布次元計算可能な疑似乱数生成器 [詳解]
 

公開メンバ関数

 linear_generator_vector (const ECGenerator &generator)
 コンストラクタ [詳解]
 
 linear_generator_vector (const ECGenerator &generator, int bit_pos)
 標準基底コンストラクタ [詳解]
 
void add (const linear_generator_vector< U, V > &src)
 ベクトルの加法 [詳解]
 
void next_state (int bit_len)
 疑似乱数生成器の状態遷移 [詳解]
 
void debug_print ()
 

フィールド

shared_ptr< ECGeneratorrand
 GF(2)線形疑似乱数生成器 [詳解]
 
int count
 next_state() が呼ばれた回数 これは多項式としてみた場合の次数に関係がある。 [詳解]
 
bool zero
 ゼロベクトルであるかどうかを示す。 [詳解]
 
next
 疑似乱数生成器の最新の出力(の上位vビット)または 多項式の最高次の係数のなすベクトル [詳解]
 

詳解

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

GF(2)ベクトルとしてのGF(2)疑似乱数生成器

このクラスはGF(2)ベクトルとしての疑似乱数生成器を表す。また GF(2)係数多項式をv個まとめたベクトルとしても扱うが、多項式特有の 処理としては不定元倍(x をかける)ことのみをサポートする。これは next_state()メソッドによって行われる。

テンプレート引数
U疑似乱数生成器の出力の型, 符号なし型でなければならない
Vパラメータ生成器の出力の型

型定義メンバ詳解

template<typename U, typename V = U>
typedef EquidistributionCalculatable<U, V> MTToolBox::linear_generator_vector< U, V >::ECGenerator

均等分布次元計算可能な疑似乱数生成器

構築子と解体子

template<typename U, typename V = U>
MTToolBox::linear_generator_vector< U, V >::linear_generator_vector ( const ECGenerator generator)
inline

コンストラクタ

引数
generator均等分布次元を計算するGF(2)疑似乱数生成器

Constructor

引数
generatorGF(2) pseudo random number generator, whose dimension of equi-distribution will be calculated.

参照先 MTToolBox::linear_generator_vector< U, V >::count, MTToolBox::linear_generator_vector< U, V >::next, MTToolBox::linear_generator_vector< U, V >::rand, MTToolBox::setZero(), MTToolBox::linear_generator_vector< U, V >::zero.

template<typename U, typename V = U>
MTToolBox::linear_generator_vector< U, V >::linear_generator_vector ( const ECGenerator generator,
int  bit_pos 
)
inline

標準基底コンストラクタ

標準基底を構成するベクトルのひとつを生成する。 出力の特定のビットに1度だけ1を出力して、その後はずっと0を出力する 疑似乱数生成器のコンストラクタ。例えば、1, 0, 0, 0, .... と出力する、 あるいは 8, 0, 0, 0, .... と出力するなど。

引数
generatorGF(2)疑似乱数生成器
bit_pos1 の位置

参照先 MTToolBox::linear_generator_vector< U, V >::count, MTToolBox::linear_generator_vector< U, V >::next, MTToolBox::linear_generator_vector< U, V >::rand, MTToolBox::linear_generator_vector< U, V >::zero.

関数詳解

template<typename U , typename V >
void MTToolBox::linear_generator_vector< U, V >::add ( const linear_generator_vector< U, V > &  src)

ベクトルの加法

引数
srcこのベクトルに足す相手のベクトル

参照先 MTToolBox::linear_generator_vector< U, V >::next, MTToolBox::linear_generator_vector< U, V >::rand.

template<typename U , typename V >
void MTToolBox::linear_generator_vector< U, V >::debug_print ( )
template<typename U , typename V >
void MTToolBox::linear_generator_vector< U, V >::next_state ( int  bit_len)

疑似乱数生成器の状態遷移

多項式ベクトルとしてみると、すべての多項式を不定元倍する。

引数
bit_lenMSB からの bit 長

参照先 MTToolBox::isZero().

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

フィールド詳解

template<typename U, typename V = U>
int MTToolBox::linear_generator_vector< U, V >::count

next_state() が呼ばれた回数 これは多項式としてみた場合の次数に関係がある。

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

template<typename U, typename V = U>
U MTToolBox::linear_generator_vector< U, V >::next

疑似乱数生成器の最新の出力(の上位vビット)または 多項式の最高次の係数のなすベクトル

参照元 MTToolBox::linear_generator_vector< U, V >::add(), MTToolBox::linear_generator_vector< U, V >::linear_generator_vector().

template<typename U, typename V = U>
shared_ptr<ECGenerator> MTToolBox::linear_generator_vector< U, V >::rand
template<typename U, typename V = U>
bool MTToolBox::linear_generator_vector< U, V >::zero

ゼロベクトルであるかどうかを示す。

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


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