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

This class offers tools to test the period of an LCG recurrence modulo \(m\), of the form. More...

Public Member Functions

 LCGComponent (const Int &m, DecompType decomp, const char *filename, bool increment=false)
 Constructor with modulus \(m\), with the type of prime factor decomposition of \(m-1\) or \(m\) specified by decomp.
 LCGComponent (const Int &b, int e, const Int &c, DecompType decomp, const char *filename, bool increment=false)
 Same as the previous constructor, but with m=b^e+c.
 ~LCGComponent ()
 Destructor.
void seta (const Int &a)
 Copy constructor;.
Int geta () const
 Gets the multiplier \(a\) of the recurrence.

Detailed Description

template<typename Int>
class LatMRG::LCGComponent< Int >

This class offers tools to test the period of an LCG recurrence modulo \(m\), of the form.

\[ x_n = (a x_{n-1} + c_0) \bmod m. \]

The object is constructed for a given value of \(m\) and a boolean that tells if we assume a nonzero increment \(c_0\) relatively prime with \(m\), or no increment ( \(c_0 = 0\)). In the latter case, The same object can be used to test the period for several values of \(a\). It does not look at the lattice structure.

Constructor & Destructor Documentation

◆ LCGComponent() [1/2]

template<typename Int>
LatMRG::LCGComponent< Int >::LCGComponent ( const Int & m,
DecompType decomp,
const char * filename,
bool increment = false )

Constructor with modulus \(m\), with the type of prime factor decomposition of \(m-1\) or \(m\) specified by decomp.

When increment is false, we consider an LCG with no increment and we need the decomposition of \(m-1\), otherwise we consider an LCG with an increment \(c_0\) relatively prime with \(m\) and we need the prime decomposition of \(m\). The type DecompType is defined in EnumTypes and offers the following choices: DECOMP: the integer will be factored, DECOMP_WRITE: it will be factored and the prime factors written in a file, DECOMP_READ: the prime factors are read from a file, DECOMP_PRIME: the integer is assumed to be prime. The name filename specifies the file where the factors of \(m-1\) or \(m\) are read or written when the type DECOMP_WRITE or DECOMP_READ is used. The given files must be accessible by the program.

◆ LCGComponent() [2/2]

template<typename Int>
LatMRG::LCGComponent< Int >::LCGComponent ( const Int & b,
int e,
const Int & c,
DecompType decomp,
const char * filename,
bool increment = false )

Same as the previous constructor, but with m=b^e+c.

◆ ~LCGComponent()

template<typename Int>
LatMRG::LCGComponent< Int >::~LCGComponent ( )

Destructor.

Member Function Documentation

◆ seta()

template<typename Int>
void LatMRG::LCGComponent< Int >::seta ( const Int & a)

Copy constructor;.

Assignment operator. Sets the multiplier \(a\) of the recurrence to a.

◆ geta()

template<typename Int>
Int LatMRG::LCGComponent< Int >::geta ( ) const
inline

Gets the multiplier \(a\) of the recurrence.


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