Lattice Tester Online Documentation 0.1.0-861
Software Package For Testing The Uniformity Of Integral Lattices In The Real Space
Loading...
Searching...
No Matches
LatticeTester::NormaLaminated Class Reference

This Normalizer class implements upper bounds on the length of the shortest nonzero vector in a lattice. More...

#include <latticetester/NormaLaminated.h>

+ Inheritance diagram for LatticeTester::NormaLaminated:

Public Member Functions

 NormaLaminated (double logm, int64_t k, int64_t maxDim)
 This constructor assumes that the rescaled primal lattice has scaling factor \(m\) and order \(k\), so its density is \(m^{k-t}\) for \(t\geq k\), and cannot exceed 1 for projections in \(s < k\) dimensions.
 
 NormaLaminated (double logDensity, int64_t maxDim)
 Constructs a NormaLaminated for up to maxDim dimensions, by assuming that the log density is logDensity in all dimensions and the lattice was not rescaled.
 
 NormaLaminated (int64_t maxDim)
 Constructs a NormaLaminated for up to maxDim dimensions, without computing the bounds.
 
double getGamma (int64_t j) const
 Returns the value of the bound on the Hermite's constant \(\gamma_j\) in dimension \(j\).
 
- Public Member Functions inherited from LatticeTester::Normalizer
 Normalizer (double logm, int64_t k, int64_t maxDim, std::string name="", NormType norm=L2NORM)
 This is the preferred constructor in all the subclasses.
 
 Normalizer (double logDensity, int64_t maxDim, std::string name="", NormType norm=L2NORM)
 ***** DEPRECATED *****
 
 Normalizer (int64_t maxDim, std::string name, NormType norm=L2NORM)
 This constructor creates a Normalizer object without computing any bounds.
 
virtual ~Normalizer ()
 Destructor.
 
virtual void computeBounds (double logDensity)
 This method is rarely applicable! It computes bounds by assuming that the log density is logDensity for all dimensions up to the maximal dimension maxDim.
 
void computeBounds (double logm, int64_t k)
 This method is called by the constructors of subclasses, in which the constants gamma_t are known.
 
std::string toString () const
 Returns a string that describes this object.
 
NormType getNorm () const
 Returns the norm associated with this object.
 
int64_t getMaxDim () const
 Returns the maximal dimension for this object.
 
virtual double * getBounds () const
 Returns the array that contains the bounds on the lengths of the shortest nonzero vectors.
 
virtual double getBound (int64_t j) const
 Returns the bound on the length of the shortest nonzero vector in j dimensions.
 

Additional Inherited Members

- Static Public Attributes inherited from LatticeTester::Normalizer
static const int64_t MAX_DIM = 48
 The maximum dimension of the lattices for which this class can give an upper bound.
 
- Protected Attributes inherited from LatticeTester::Normalizer
std::string m_name
 Name of the normalizer.
 
NormType m_norm
 Norm type associated with this object.
 
int64_t m_maxDim
 Maximum dimension.
 
double * m_bounds
 Contains the bounds on the length of the shortest nonzero vector in the lattice in each dimension up to maxDim.
 

Detailed Description

This Normalizer class implements upper bounds on the length of the shortest nonzero vector in a lattice.

The Hermite constants \(\gamma_s\) are approximated by using the values that correspond to the laminated lattices [2]. These lattices are not always the densest lattices available, but they are intuitive constructions dense lattices. In [2], Table 6.1 gives the determinant \(\lambda_s\) that can be used to recover the center density \(\delta_s = \lambda_s^{-1/2}\) of the densest laminated lattice in dimension \(s\). From there, we get

\[ \gamma_s = 4 \delta_s^{2/s}. \]

This class is to be used with the L2NORM (the Euclidean norm) exclusively.

Constructor & Destructor Documentation

◆ NormaLaminated() [1/3]

LatticeTester::NormaLaminated::NormaLaminated ( double logm,
int64_t k,
int64_t maxDim )

This constructor assumes that the rescaled primal lattice has scaling factor \(m\) and order \(k\), so its density is \(m^{k-t}\) for \(t\geq k\), and cannot exceed 1 for projections in \(s < k\) dimensions.

◆ NormaLaminated() [2/3]

LatticeTester::NormaLaminated::NormaLaminated ( double logDensity,
int64_t maxDim )

Constructs a NormaLaminated for up to maxDim dimensions, by assuming that the log density is logDensity in all dimensions and the lattice was not rescaled.

Restriction: maxDim \( \le 48\).

◆ NormaLaminated() [3/3]

LatticeTester::NormaLaminated::NormaLaminated ( int64_t maxDim)

Constructs a NormaLaminated for up to maxDim dimensions, without computing the bounds.

Restriction: maxDim \( \le 48\).

Member Function Documentation

◆ getGamma()

double LatticeTester::NormaLaminated::getGamma ( int64_t j) const
inlinevirtual

Returns the value of the bound on the Hermite's constant \(\gamma_j\) in dimension \(j\).

Reimplemented from LatticeTester::Normalizer.


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