Lattice Tester Online Documentation 0.1.0-861
Software Package For Testing The Uniformity Of Integral Lattices In The Real Space
|
This class implements upper bounds on the length of the shortest nonzero vector in a lattice, in which the Hermite constants \(\gamma_s\) are approximated by their Rogers's bounds. More...
#include <latticetester/NormaRogers.h>
Public Member Functions | |
NormaRogers (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. | |
NormaRogers (double logDensity, int64_t maxDim) | |
Constructs a NormaRogers for up to maxDim dimensions, by assuming that the log density is logDensity in all dimensions and the lattice was not rescaled. | |
~NormaRogers () | |
Destructor. | |
double | getGamma (int64_t j) const |
Returns the value of the bound on the Hermite constant \(\gamma_j\) in dimension \(j\). | |
![]() | |
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 const int64_t | MAX_DIM = 48 |
The maximum dimension of the lattices for which this class can give an upper bound. | |
![]() | |
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 upper bounds on the length of the shortest nonzero vector in a lattice, in which the Hermite constants \(\gamma_s\) are approximated by their Rogers's bounds.
These bounds are calculated as explained in [2], Eq. (47) on page 20, and in Table 1.2 on page 15. NormaBestBound
provide tighter bounds in lower dimensions, up to 36, but Rogers bounds can be computed in higher dimensions. This class is to be used only with the L2NORM (the Euclidean norm).
LatticeTester::NormaRogers::NormaRogers | ( | 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::NormaRogers::NormaRogers | ( | double | logDensity, |
int64_t | maxDim ) |
Constructs a NormaRogers
for up to maxDim
dimensions, by assuming that the log density is logDensity
in all dimensions and the lattice was not rescaled.
LatticeTester::NormaRogers::~NormaRogers | ( | ) |
Destructor.
|
inlinevirtual |
Returns the value of the bound on the Hermite constant \(\gamma_j\) in dimension \(j\).
Reimplemented from LatticeTester::Normalizer.