Lattice Builder Manual
Software Package for Constructing Rank1 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\).  
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 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\).