Lattice traits.
More...
#include <Types.h>
template<LatticeType LR>
struct LatBuilder::LatticeTraits< LR >
Lattice traits.
Specializations of this class template must define the types:
- Modulus: type of the modulus of the lattice;
- GenValue: type of the values taken by components of the generating vector of the lattice;
- GeneratingVector: type for the generating vector of the lattice ;
A static const Modulus TrivialModulus : value of the modulus yielding a Lattice of one point
and the following static functions :
- uInteger ToIndex(const GenValue& value) : a mapping from the set of integers (respectively polynomials) modulo the modulus into the set of integers less than the number of points. Permits to see the integers (respectively polynomials) modulo the modulus as indexs. Current implementation: The identity mapping for integers, and if \(p(z) = \sum a_iz^i\) is a polynomial To index(p(z)) returns \(\sum a_i2^i\)
- GenValue ToGenValue(const uInteger& index) : the inverse mapping of ToIndex
- uInteger NumPoints(const Modulus& modulus) given a modulus returns the number of points in the lattice point set
- uInteger ToKernelIndex(const size_t& index, const Modulus& modulus) For cooddinate uniform figures of merit, given an index \(i\), we need to compute \(w(i/n)\) in the case of an ordinary lattice with modulus \(n\), and \(w((\nu_m(i(z)/P(z)))\) in the case of a polynomial lattice of modulus \(P(z)\) ( \( i(z) = \sum a_iz^i\) where \(i =\sum a_i2^i\)). ToKernelIndex computes an integer \(x\) such that the required quantity is \(w(x/n)\), where \(n\) is the number of points. i.e. \(x = i\) in the case of an ordinary lattice and \(x = n\nu_m(i(z)/P(z))\) for polynomial lattices.
- Examples:
- tutorial/FilteredCBC.cc, tutorial/FilteredRCBC.cc, tutorial/GenSeqVector.cc, tutorial/LatSeqCBC.cc, tutorial/LatSeqCBC1.cc, tutorial/LatSeqExhaustive.cc, tutorial/LatSeqKorobov.cc, tutorial/LatSeqRandom.cc, tutorial/MeritSeqCBC.cc, tutorial/MeritSeqCBCSignals.cc, tutorial/MeritSeqCoordUniform.cc, tutorial/MeritSeqFastCBC.cc, tutorial/MeritSeqNonCBC.cc, tutorial/Storage.cc, and tutorial/WeightedFigureOfMeritCBC.cc.
The documentation for this struct was generated from the following file: