MTToolBox  0.2.10
ReducibleGenerator.hpp
[詳解]
1 #ifndef MTTOOLBOX_REDUCIBLE_GENERATOR_HPP
2 #define MTTOOLBOX_REDUCIBLE_GENERATOR_HPP
3 
30 #include <stdint.h>
31 #include <inttypes.h>
32 #include <NTL/GF2X.h>
34 
35 namespace MTToolBox {
56  template<typename U, typename V = U>
58  : virtual public EquidistributionCalculatable<U, V> {
59  public:
60 
70  virtual ~ReducibleGenerator(){};
71 
85  virtual void setOneBit(int bitPos) = 0;
86 
99  virtual U getParityValue() const = 0;
100 
112  virtual void setParityValue(U parity) = 0;
113 
126  virtual int getMexp() const = 0;
127 
128  };
129 
147  template<typename U, typename V = U>
149  const NTL::GF2X& poly) {
151  rg->setZero();
152  for (int i = 0; i <= deg(poly); i++) {
153  if (coeff(poly, i) != 0) {
154  rg->add(*other);
155  }
156  other->generate();
157  }
158  delete other;
159  }
160 }
161 
162 #endif // MTTOOLBOX_REDUCIBLE_GENERATOR_HPP
virtual void setParityValue(U parity)=0
パリティチェック用の状態空間の位置に指定された値をセットする。
virtual void setOneBit(int bitPos)=0
状態空間の中の指定された1ビットだけ1にし、それ以外をすべてゼロにする。 このメソッドはパリティベクトル...
virtual void add(EquidistributionCalculatable< U, V > &that)=0
GF(2)線形疑似乱数生成器の状態空間を加算し、内部状態を変更する。
このクラスはGF(2)線形疑似乱数生成器の均等分布次元を計算するためのクラスである。
Definition: EquidistributionCalculatable.hpp:50
virtual EquidistributionCalculatable< U, V > * clone() const =0
自分のコピーを返す。
virtual U getParityValue() const =0
パリティチェック用の状態空間の位置にある値を返す。
virtual ~ReducibleGenerator()
仮想デストラクタ(必須)
Definition: ReducibleGenerator.hpp:70
このクラスは特性多項式が可約なGF(2)線形疑似乱数生成器を開 発するためのクラスである。 ...
Definition: ReducibleGenerator.hpp:57
このクラスはGF(2)線形疑似乱数生成器の均等分布次元を計算するためのクラスである。
void annihilate(EquidistributionCalculatable< U, V > *rg, const NTL::GF2X &poly)
可約疑似乱数生成器の状態空間を多項式で殲滅する。
Definition: ReducibleGenerator.hpp:148
virtual U generate(int outBitLen)=0
上位(MSBから) outBitLen だけ出力する。
virtual int getMexp() const =0
この疑似乱数生成器の最低周期となるメルセンヌ指数を取得する。
virtual void setZero()=0
状態空間をすべてゼロにセットする。
MTToolBox の名前空間