MTToolBox
0.2.10
|
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< ECGenerator > | rand |
GF(2)線形疑似乱数生成器 [詳解] | |
int | count |
next_state() が呼ばれた回数 これは多項式としてみた場合の次数に関係がある。 [詳解] | |
bool | zero |
ゼロベクトルであるかどうかを示す。 [詳解] | |
U | next |
疑似乱数生成器の最新の出力(の上位vビット)または 多項式の最高次の係数のなすベクトル [詳解] | |
GF(2)ベクトルとしてのGF(2)疑似乱数生成器
このクラスはGF(2)ベクトルとしての疑似乱数生成器を表す。また GF(2)係数多項式をv個まとめたベクトルとしても扱うが、多項式特有の 処理としては不定元倍(x をかける)ことのみをサポートする。これは next_state()メソッドによって行われる。
U | 疑似乱数生成器の出力の型, 符号なし型でなければならない |
V | パラメータ生成器の出力の型 |
typedef EquidistributionCalculatable<U, V> MTToolBox::linear_generator_vector< U, V >::ECGenerator |
均等分布次元計算可能な疑似乱数生成器
|
inline |
コンストラクタ
generator | 均等分布次元を計算するGF(2)疑似乱数生成器 |
Constructor
generator | GF(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.
|
inline |
標準基底コンストラクタ
標準基底を構成するベクトルのひとつを生成する。 出力の特定のビットに1度だけ1を出力して、その後はずっと0を出力する 疑似乱数生成器のコンストラクタ。例えば、1, 0, 0, 0, .... と出力する、 あるいは 8, 0, 0, 0, .... と出力するなど。
generator | GF(2)疑似乱数生成器 |
bit_pos | 1 の位置 |
参照先 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.
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.
void MTToolBox::linear_generator_vector< U, V >::debug_print | ( | ) |
void MTToolBox::linear_generator_vector< U, V >::next_state | ( | int | bit_len | ) |
疑似乱数生成器の状態遷移
多項式ベクトルとしてみると、すべての多項式を不定元倍する。
bit_len | MSB からの bit 長 |
参照先 MTToolBox::isZero().
参照元 MTToolBox::AlgorithmEquidistribution< U, V >::AlgorithmEquidistribution().
int MTToolBox::linear_generator_vector< U, V >::count |
next_state() が呼ばれた回数 これは多項式としてみた場合の次数に関係がある。
参照元 MTToolBox::linear_generator_vector< U, V >::linear_generator_vector().
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().
shared_ptr<ECGenerator> MTToolBox::linear_generator_vector< U, V >::rand |
bool MTToolBox::linear_generator_vector< U, V >::zero |
ゼロベクトルであるかどうかを示す。
参照元 MTToolBox::linear_generator_vector< U, V >::linear_generator_vector().