LatNet Builder Manual  2.0.1-11
Software Package for Constructing Highly Uniform Point Sets
LatBuilder::GenSeq::CyclicGroup< LatticeType::ORDINARY, COMPRESS, TRAV, ORDER > Class Template Reference

Inherits LatBuilder::Traversal::Policy< CyclicGroup< LatticeType::ORDINARY, COMPRESS, TRAV, ORDER >, TRAV >.

Classes

struct  RebindTraversal
 Rebinds the traversal type. More...
 

Public Types

typedef CyclicGroupTraits< self_type >::size_type size_type
 
typedef CyclicGroupTraits< self_type >::value_type value_type
 
typedef CyclicGroupTraits< self_type >::Modulus Modulus
 
typedef TRAV Traversal
 Traversal type.
 

Public Member Functions

 CyclicGroup (Traversal trav=Traversal())
 Constructor for an empty group.
 
 CyclicGroup (Modulus base, Level power, Traversal trav=Traversal())
 Constructor for the cyclic group of integers modulo \(b^m\), where \(b\) is a prime base. More...
 
template<class TRAV2 >
 CyclicGroup (const CyclicGroup< LatticeType::ORDINARY, COMPRESS, TRAV2, ORDER > &other, Traversal trav=Traversal())
 Cross-traversal copy-constructor.
 
template<class TRAV2 >
RebindTraversal< TRAV2 >::Type rebind (TRAV2 trav) const
 Returns a copy of this object, but using a different traversal policy.
 
Modulus base () const
 Returns the base of the group modulus.
 
Level power () const
 Returns the power of the base of the group modulus.
 
size_type fullSize () const
 Returns the cardinality of the full group. More...
 
size_type size () const
 Returns the cardinality of the group part specified by COMPRESS.
 
Modulus modulus () const
 Returns the modulus \(b^m\) of the cyclic group.
 
value_type generator () const
 Returns the generator \(g\) for the group.
 
value_type operator[] (size_type i) const
 Returns the element at index i.
 
CyclicGroup< LatticeType::ORDINARY, COMPRESS, TRAV, !ORDER > inverse () const
 Returns the group generated by the inverse generator.
 
CyclicGroup subgroup (Level level) const
 Returns the subgroup at level level.
 
template<Compress COMPRESS, class TRAV , GroupOrder ORDER>
 CyclicGroup (const CyclicGroup< LatticeType::ORDINARY, COMPRESS, TRAV, ORDER > &other, Level level)
 

Static Public Member Functions

static constexpr LatBuilder::Compress compress ()
 
static std::string name ()
 
static value_type smallestGenerator (Modulus base, Level power, bool checkPrime=true)
 Returns the smallest generator for the group of cyclic integers modulo \(b^m\). More...
 

Friends

template<LatticeType , LatBuilder::Compress , class , GroupOrder >
class CyclicGroup
 
class CyclicGroup< LatticeType::ORDINARY, COMPRESS, TRAV, !ORDER >
 

Constructor & Destructor Documentation

◆ CyclicGroup()

template<Compress COMPRESS, class TRAV , GroupOrder ORDER>
LatBuilder::GenSeq::CyclicGroup< LatticeType::ORDINARY, COMPRESS, TRAV, ORDER >::CyclicGroup ( Modulus  base,
Level  power,
Traversal  trav = Traversal() 
)

Constructor for the cyclic group of integers modulo \(b^m\), where \(b\) is a prime base.

Parameters
basePrime base \(b\).
powerPower \(m\) of the base.
travTraversal instance.

References LatBuilder::intPow().

Member Function Documentation

◆ fullSize()

template<Compress COMPRESS, class TRAV , GroupOrder ORDER>
size_type LatBuilder::GenSeq::CyclicGroup< LatticeType::ORDINARY, COMPRESS, TRAV, ORDER >::fullSize ( ) const
inline

Returns the cardinality of the full group.

Remarks
If COMPRESS is Compress::NONE, this is the same as size().

◆ smallestGenerator()

template<Compress COMPRESS, class TRAV , GroupOrder ORDER>
CyclicGroup< LatticeType::ORDINARY, COMPRESS, TRAV, ORDER >::value_type LatBuilder::GenSeq::CyclicGroup< LatticeType::ORDINARY, COMPRESS, TRAV, ORDER >::smallestGenerator ( Modulus  base,
Level  power,
bool  checkPrime = true 
)
static

Returns the smallest generator for the group of cyclic integers modulo \(b^m\).

Parameters
base\(b\)
power\(m\)
checkPrimeIf true, checks if the base is actually prime.

The algorithm is described in [2] .

References LatBuilder::modularPow(), LatticeTester::power(), and LatBuilder::primeFactors().


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