Lattice Tester Guide
1.0-9
Software Package For Testing The Uniformity Of Integral Lattices In The Real Space
|
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 <latticetester/NormaMinkL1.h>
Inherits LatticeTester::Normalizer< RedDbl >.
Public Member Functions | |
NormaMinkL1 (RedDbl &logDensity, int t, double beta=1) | |
Constructor for the Marsaglia’s bounds with the \({\mathcal{L}}_1\) norm. More... | |
~NormaMinkL1 () | |
Destructor. More... | |
double | getGamma (int j) const |
Returns the value of the lattice constant \(\gamma_j\) in dimension \(j\). More... | |
Public Member Functions inherited from LatticeTester::Normalizer< RedDbl > | |
Normalizer (RedDbl &logDensity, int t, std::string Name, NormType norm=L2NORM, double beta=1) | |
Complete constructor for a Normalizer . More... | |
Normalizer (int t, std::string Name, NormType norm=L2NORM, double beta=1) | |
Constructor that does not take the density as an argument. More... | |
virtual | ~Normalizer () |
Destructor. More... | |
virtual void | init (RedDbl &logDensity, double beta) |
This is a method that will initialize the bounds this normalizer can return. More... | |
std::string | ToString () const |
Returns a string that describes this object. More... | |
NormType | getNorm () const |
Returns the norm associated with this object. More... | |
void | setLogDensity (RedDbl logDensity) |
Sets the log-density associated with this object to logDensity . More... | |
RedDbl | getLogDensity () const |
Returns the logDensity associated with this object. More... | |
void | setNorm (NormType norm) |
Sets the norm associated with this object to norm . More... | |
int | getDim () const |
Returns the maximal dimension for this object. More... | |
double | getPreComputedBound (int j) const |
Returns the bound for dimension j as computed in Normalizer::init(). More... | |
virtual RedDbl | getBound (int j) const |
Calculates and returns the bound on the length of the shortest nonzero vector in dimension j . More... | |
Additional Inherited Members | |
Static Public Attributes inherited from LatticeTester::Normalizer< RedDbl > | |
static const int | MAX_DIM = 48 |
The maximum dimension of the lattices for which this class can give an upper bound. More... | |
Protected Attributes inherited from LatticeTester::Normalizer< RedDbl > | |
std::string | m_name |
Name of the normalizer. More... | |
NormType | m_norm |
Norm associated with this object. More... | |
RedDbl | m_logDensity |
log of the density, ie log of the number of points of the lattice per unit of volume. More... | |
int | m_maxDim |
Only elements 1 to m_maxDim (inclusive) of m_bounds bellow will be pre-computed. More... | |
double | m_beta |
Beta factor used to give more or less importance to some of the dimensions. More... | |
double * | m_bounds |
Contains the bounds on the length of the shortest nonzero vector in the lattice in each dimension. More... | |
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 \({\mathcal{L}}_1\) norm. Here, the length of the shortest nonzero vector gives the minimal number of hyperplanes that cover all the points of the dual lattice aasociated. The following upper bound in this case was established by Marsaglia [18] by applying the general convex body theorem of Minkowski:
\[ \ell_t^* = (t!)^{1/t}*(n)^{-1/t}) = \gamma_t^{1/2} n^{-1/t}, \]
for a lattice containing \(n\) points per unit volume, in dimension \(t\). The lattice constants are thus \(\gamma_t = (t!)^{2/t}\).
LatticeTester::NormaMinkL1< RedDbl >::NormaMinkL1 | ( | RedDbl & | logDensity, |
int | t, | ||
double | beta = 1 |
||
) |
Constructor for the Marsaglia’s bounds with the \({\mathcal{L}}_1\) norm.
The lattice has \(n\) points per unit volume, in all dimensions \(\le t\). The bias factor beta
\(= \beta\) gives more weight to some of the dimensions. Restriction: \(t \le48\).
LatticeTester::NormaMinkL1< RedDbl >::~NormaMinkL1 | ( | ) |
Destructor.
|
inlinevirtual |
Returns the value of the lattice constant \(\gamma_j\) in dimension \(j\).
Reimplemented from LatticeTester::Normalizer< RedDbl >.