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

This class represents a combined MRG. More...

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

Public Types

typedef Real Float
typedef Int Integ
typedef NTL::vector< Int > IntVec
typedef NTL::matrix< Int > IntMat

Public Member Functions

 ComboLattice (std::vector< MRGPeriod< Int > * > &comp, MRGLattice< Int, Real > &lat)
 Creates a ComboLattice for the set of MRG described in comp with a MRG lattice as described in lat.
 ComboLattice (const ComboLattice< Int, Real > &lat)
 Copy constructor.
 ~ComboLattice ()
 Destructor.
std::string toString () const override
 Prints a string describing all the componenets and the equivalent MRG.
std::string & getCompString (int i)
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::ComboLattice< Int, Real >

This class represents a combined MRG.

It stores a vector of MRGPeriod and computes the equivalent MRG to their combination. Note that MRGComponenets do not have to be MRG themselves. This only overrides the toString() method and provides a constructor that populates the MRGLattice super-class to use this class in methods without an overload specific to it.

Member Typedef Documentation

◆ Float

template<typename Int, typename Real>
typedef Real LatMRG::ComboLattice< Int, Real >::Float

◆ Integ

template<typename Int, typename Real>
typedef Int LatMRG::ComboLattice< Int, Real >::Integ

◆ IntVec

template<typename Int, typename Real>
typedef NTL::vector<Int> LatMRG::ComboLattice< Int, Real >::IntVec

◆ IntMat

template<typename Int, typename Real>
typedef NTL::matrix<Int> LatMRG::ComboLattice< Int, Real >::IntMat

Constructor & Destructor Documentation

◆ ComboLattice() [1/2]

template<typename Int, typename Real>
LatMRG::ComboLattice< Int, Real >::ComboLattice ( std::vector< MRGPeriod< Int > * > & comp,
MRGLattice< Int, Real > & lat )

Creates a ComboLattice for the set of MRG described in comp with a MRG lattice as described in lat.

Ideally, lat has been initialized with getLatCombo.

◆ ComboLattice() [2/2]

template<typename Int, typename Real>
LatMRG::ComboLattice< Int, Real >::ComboLattice ( const ComboLattice< Int, Real > & lat)

Copy constructor.

◆ ~ComboLattice()

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

Destructor.

Deallocate memory to m_comp.

Member Function Documentation

◆ toString()

template<typename Int, typename Real>
std::string LatMRG::ComboLattice< Int, Real >::toString ( ) const
override

Prints a string describing all the componenets and the equivalent MRG.

◆ getCompString()

template<typename Int, typename Real>
std::string & LatMRG::ComboLattice< Int, Real >::getCompString ( int i)
inline

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