|
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.