LatMRG Online Documentation unknown
Tools to analyze the lattice structure of linear generators
|
This class represents the lattice associated with either an AWC or a SWB random number generator. More...
Public Member Functions | |
AWCSWBLattice (const Int &b, int r, int s, int mode) | |
b is the modulo. | |
AWCSWBLattice (const AWCSWBLattice< Int, Real > &Lat) | |
Copy constructor. | |
AWCSWBLattice< Int, Real > & | operator= (const AWCSWBLattice< Int, Real > &Lat) |
Assigns Lat to this object. | |
~AWCSWBLattice () | |
Destructor. | |
void | kill () |
Cleans and releases memory used by this object. | |
std::string | toStringCoef () const |
Reimplement this. | |
const Int & | getAWCSWBmod () const |
The modulo of the MWC generator this object represents. | |
int | getAWCSWBorder () const |
The order of the MWC generator. | |
Public Member Functions inherited from LatMRG::MRGLattice< Int, Real > | |
MRGLattice (const Int &m, const IntVec &aa, int64_t maxDim, NormType norm=L2NORM) | |
This constructor takes as input the modulus m, the vector of multipliers aa, and the norm used to measure the vector lengths. | |
MRGLattice (const MRGLattice< Int, Real > &Lat) | |
MRGLattice & | operator= (const MRGLattice< Int, Real > &Lat) |
Assigns Lat to this object. | |
~MRGLattice () | |
Destructor. | |
virtual void | setaa (const IntVec &aa) |
Sets the vector of multipliers. | |
void | buildBasis (int64_t dim) |
Builds a basis in dim dimensions. | |
void | buildDualBasis (int64_t dim) |
Builds the m-dual lower triangular basis directly in dim dimensions. | |
void | incDimBasis () |
Increases the current dimension of the primal basis by 1 and updates the basis. | |
void | incDimDualBasis () |
Increases the current dimension of the m-dual basis by 1. | |
void | buildProjection (IntLattice< Int, Real > &projLattice, const Coordinates &proj) override |
This method overrides its namesake in IntLattice. | |
void | buildProjectionDual (IntLattice< Int, Real > &projLattice, const Coordinates &proj) override |
Overrides the same function from IntLattice. | |
std::string | toStringCoef () const |
Returns the first dim components of the generating vector \(\ba\) as a string, where dim is the current lattice dimension. |
Additional Inherited Members | |
Protected Member Functions inherited from LatMRG::MRGLattice< Int, Real > | |
virtual void | buildBasis0 (IntMat &basis, int64_t d) |
The following protected functions take the basis as a parameter for more flexibility. | |
virtual void | buildDualBasis0 (IntMat &basis, int64_t d) |
virtual void | incDimBasis0 (IntMat &basis, int64_t d) |
virtual void | incDimDualBasis0 (IntMat &basis, int64_t d) |
virtual bool | buildProjection0 (IntMat &basis, int64_t dimbasis, IntMat &pbasis, const Coordinates &proj) |
Protected Attributes inherited from LatMRG::MRGLattice< Int, Real > | |
IntMat | m_genTemp |
This auxiliary matrix is used to store the generating vectors of a projections before reducing them into a triangular basis. | |
IntMat | m_copy_primal_basis |
For generating the dual basis or increasing its dimension, we need a copy of the the primal basis if we use polynomial arithmetic. | |
int | m_order |
IntVec | m_aCoeff |
The coefficients \(a_1, ..., a_k\) of the MRG recurrence, a_j stored in m_aCoeff[j]. |
This class represents the lattice associated with either an AWC or a SWB random number generator.
This class is based on the article [7] and uses the exact same representation, except that each case is represented here by an integer ranging from 0 to 3. It is important to note that when interracting with other classes of LatMRG, this will most likely act as a simple MRGLattice and only the LCG equivalent to the AWC/SWB will be considered. When using this class, mode = 0 means that the generator is of the form AWC, mode = 1 is equivalent to AWC-c, mode = 2 is SWB-I and mode = 3 is SWB-II.
LatMRG::AWCSWBLattice< Int, Real >::AWCSWBLattice | ( | const Int & | b, |
int | r, | ||
int | s, | ||
int | mode ) |
b is the modulo.
We expect that r > s if this is not the case, then r and s are reversed.
LatMRG::AWCSWBLattice< Int, Real >::AWCSWBLattice | ( | const AWCSWBLattice< Int, Real > & | Lat | ) |
Copy constructor.
The maximal dimension of the created basis is set equal to Lat’s current dimension.
LatMRG::AWCSWBLattice< Int, Real >::~AWCSWBLattice | ( | ) |
Destructor.
AWCSWBLattice< Int, Real > & LatMRG::AWCSWBLattice< Int, Real >::operator= | ( | const AWCSWBLattice< Int, Real > & | Lat | ) |
Assigns Lat to this object.
The maximal dimension of this basis is set equal to Lat’s current dimension.
void LatMRG::AWCSWBLattice< Int, Real >::kill | ( | ) |
Cleans and releases memory used by this object.
std::string LatMRG::AWCSWBLattice< Int, Real >::toStringCoef | ( | ) | const |
Reimplement this.
|
inline |
The modulo of the MWC generator this object represents.
|
inline |
The order of the MWC generator.
An order of k means that the generator has k+1 coefficients.