Lattice Tester Online Documentation 0.1.0-861
Software Package For Testing The Uniformity Of Integral Lattices In The Real Space
|
This class implements Minkowski’s theoretical LOWER bound on the length of the shortest non-zero vector in a lattice, with the \({\mathcal{L}}_2\) norm. More...
#include <latticetester/NormaMinkL2.h>
Public Member Functions | |
NormaMinkL2 (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. | |
NormaMinkL2 (double logDensity, int64_t maxDim) | |
Constructs a NormaMinkL2 for up to maxDim dimensions, by assuming that the log density is logDensity in all dimensions and the lattice was not rescaled. | |
double | getGamma (int64_t j) const |
Returns the value of the lattice 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 class implements Minkowski’s theoretical LOWER bound on the length of the shortest non-zero vector in a lattice, with the \({\mathcal{L}}_2\) norm.
The Hermite constants \(\gamma_s\) are approximated using this bound. This class is to be used with the L2NORM (the Euclidean norm) exclusively.
LatticeTester::NormaMinkL2::NormaMinkL2 | ( | 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::NormaMinkL2::NormaMinkL2 | ( | double | logDensity, |
int64_t | maxDim ) |
Constructs a NormaMinkL2
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\).
|
inlinevirtual |
Returns the value of the lattice constant \(\gamma_j\) in dimension \(j\).
Reimplemented from LatticeTester::Normalizer.