Lattice Tester Online Documentation 0.1.0-861
Software Package For Testing The Uniformity Of Integral Lattices In The Real Space
|
This Normalizer class implements upper bounds on the length of the shortest nonzero vector in a lattice. More...
#include <latticetester/NormaLaminated.h>
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 . | |
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.
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.
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\).
LatticeTester::NormaLaminated::NormaLaminated | ( | int64_t | maxDim | ) |
Constructs a NormaLaminated
for up to maxDim
dimensions, without computing the bounds.
Restriction: maxDim
\( \le 48\).
|
inlinevirtual |
Returns the value of the bound on the Hermite's constant \(\gamma_j\) in dimension \(j\).
Reimplemented from LatticeTester::Normalizer.