LatMRG Online Documentation unknown
Tools to analyze the lattice structure of linear generators
Loading...
Searching...
No Matches
LatMRG::AWCSWBLattice< Int, Real > Class Template Reference

This class represents the lattice associated with either an AWC or a SWB random number generator. More...

Inheritance diagram for LatMRG::AWCSWBLattice< Int, Real >:

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)
MRGLatticeoperator= (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].

Detailed Description

template<typename Int, typename Real>
class LatMRG::AWCSWBLattice< Int, Real >

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.

Constructor & Destructor Documentation

◆ AWCSWBLattice() [1/2]

template<typename Int, typename Real>
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.

◆ AWCSWBLattice() [2/2]

template<typename Int, typename Real>
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.

◆ ~AWCSWBLattice()

template<typename Int, typename Real>
LatMRG::AWCSWBLattice< Int, Real >::~AWCSWBLattice ( )

Destructor.

Member Function Documentation

◆ operator=()

template<typename Int, typename Real>
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.

◆ kill()

template<typename Int, typename Real>
void LatMRG::AWCSWBLattice< Int, Real >::kill ( )

Cleans and releases memory used by this object.

◆ toStringCoef()

template<typename Int, typename Real>
std::string LatMRG::AWCSWBLattice< Int, Real >::toStringCoef ( ) const

Reimplement this.

◆ getAWCSWBmod()

template<typename Int, typename Real>
const Int & LatMRG::AWCSWBLattice< Int, Real >::getAWCSWBmod ( ) const
inline

The modulo of the MWC generator this object represents.

◆ getAWCSWBorder()

template<typename Int, typename Real>
int LatMRG::AWCSWBLattice< Int, Real >::getAWCSWBorder ( ) const
inline

The order of the MWC generator.

An order of k means that the generator has k+1 coefficients.


The documentation for this class was generated from the following file: