Lattice Builder Manual
Software Package for Constructing Rank-1 Lattices
|
This class implements the best theoretical bounds on the length of the shortest nonzero vector in a lattice, based on the densest sphere packing in lattices. More...
#include <NormaBestLat.h>
Inherits LatCommon::Normalizer.
Public Member Functions | |
NormaBestLat (const MScal &m, int k, int t, double beta=1) | |
Constructor for the best bounds obtained for lattices. More... | |
double | getGamma (int j) const throw (std::out_of_range) |
Returns the value of the lattice constant \(\gamma_j\) in dimension \(j\). | |
Public Member Functions inherited from LatCommon::Normalizer | |
Normalizer (const MScal &m, int k, int t, std::string Name, NormType norm=L2NORM, double beta=1) | |
virtual | ~Normalizer () |
Destructor. | |
void | init (const MScal &m, int k, double beta) |
Initializes the bounds on the length of the shortest vector. More... | |
std::string | ToString () const |
Returns this object as a string. | |
NormType | getNorm () const |
Returns the norm associated with this object. | |
void | setNorm (NormType norm) |
Sets the norm associated with this object to norm . | |
int | getDim () const |
Returns the maximal dimension for this object. | |
double & | getCst (int j) |
Returns the bound on the length of the shortest nonzero vector in dimension \(j\). More... | |
Additional Inherited Members | |
Static Public Attributes inherited from LatCommon::Normalizer | |
static const int | MAX_DIM = 48 |
Constructor for the bounds. More... | |
Protected Attributes inherited from LatCommon::Normalizer | |
std::string | m_name |
Name of the normalizer. | |
NormType | m_norm |
Norm associated with this object. | |
MScal | m_m |
Number of points of the lattice per unit volume. | |
int | m_rank |
Rank of the lattice. | |
int | m_maxDim |
Only elements 1 to m_maxDim (inclusive) of arrays are defined. | |
double | m_beta |
Beta factor. | |
double * | m_cst |
Contains the bounds on the length of the shortest nonzero vector in the lattice in each dimension. | |
This class implements the best theoretical bounds on the length of the shortest nonzero vector in a lattice, based on the densest sphere packing in lattices.
The length of a vector is computed using the \({\cal L}_2\) norm. The bounding lengths for a lattice of rank \(k\), containing \(m\) points per unit volume in dimension \(t\), are given by \(\ell_t^* = \gamma_t m^{k/t}\) for \(t \ge k\), where the \(\gamma_t\) are the lattice constants for the best known lattices [3] .
LatCommon::NormaBestLat::NormaBestLat | ( | const MScal & | m, |
int | k, | ||
int | t, | ||
double | beta = 1 |
||
) |
Constructor for the best bounds obtained for lattices.
The lattices are those of rank \(k\), with \(m\) points per unit volume, for all dimensions \(\le t\). The bias factor beta
\(= \beta\) gives more weight to some of the dimensions. %: taking \(\beta < 1\) inflates the figure of merit by % \((1/\beta)^t\), thus weakening the requirements for large \(t\) in a % worst-case figure of merit. Restriction: \(t \le 48\).