Lattice Builder Manual
Software Package for Constructing Rank-1 Lattices
|
This class implements theoretical bounds on the length of the shortest nonzero vector in a lattice, based on the densest sphere packing in space. More...
#include <NormaMinkL1.h>
Inherits LatCommon::Normalizer.
Public Member Functions | |
NormaMinkL1 (const MScal &m, int k, int t, double beta=1) | |
Constructor for the Marsaglia's bounds with the \({\cal L}_1\) norm. More... | |
double | getGamma (int j) const throw (std::out_of_range) |
Returns the value of the lattice constant \(\gamma_j\) in dimension \(j\). | |
![]() | |
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 const int | MAX_DIM = 48 |
Constructor for the bounds. More... | |
![]() | |
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 theoretical bounds on the length of the shortest nonzero vector in a lattice, based on the densest sphere packing in space.
The length of vectors is computed using the \({\cal L}_1\) norm. Here, the length of the shortest nonzero vector gives the minimal number of hyperplanes that cover all the points of the lattice. The following upper bound in this case was established by Marsaglia [16] by applying the general convex body theorem of Minkowski:
\[ \ell_t^* = (t! m^k)^{1/t} = \gamma_t m^{k/t}, \]
for lattices of rank \(k\), containing \(m\) points per unit volume, in dimension \(t\). The lattice constants are thus \(\gamma_t = (t!)^{1/t}\).
LatCommon::NormaMinkL1::NormaMinkL1 | ( | const MScal & | m, |
int | k, | ||
int | t, | ||
double | beta = 1 |
||
) |
Constructor for the Marsaglia's bounds with the \({\cal L}_1\) norm.
The lattices are those of rank \(k\), with \(m\) points per unit volume, in all dimensions \(\le t\). The bias factor beta
\(= \beta\) gives more weight to some of the dimensions. Restriction: \(t \le 48\).