LatNet Builder Manual
2.0.1-11
Software Package for Constructing Highly Uniform Point Sets
|
This class implements the Rogers bounds on the density of sphere packing. More...
#include <NormaRogers.h>
Inherits LatticeTester::Normalizer< RedDbl >.
Public Member Functions | |
NormaRogers (RedDbl &logDensity, int t, double beta=1) | |
Constructor for the Rogers bounds. More... | |
~NormaRogers () | |
Destructor. | |
double | getGamma (int j) const |
Returns the value of the Rogers lattice constant \(\gamma_j\) in dimension \(j\). | |
Public Member Functions inherited from LatticeTester::Normalizer< RedDbl > | |
Normalizer (RedDbl &logDensity, int t, std::string Name, NormType norm=L2NORM, double beta=1) | |
Constructor for the bounds. More... | |
Normalizer (int t, std::string Name, NormType norm=L2NORM, double beta=1) | |
Constructor only used by the NormaPalpha class. More... | |
virtual | ~Normalizer () |
Destructor. | |
virtual void | init (RedDbl &logDensity, 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 | setLogDensity (RedDbl logDensity) |
Sets the log-density associated with this object to logDensity . | |
RedDbl | getLogDensity () const |
Returns the logDensity 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 | getPreComputedBound (int j) const |
Returns the bound on the length of the shortest nonzero vector in dimension \(j\) as computed in Normalizer::init. | |
double | getBound (int j) const |
Calculates and returns the bound on the length of the shortest nonzero vector in dimension \(j\). | |
Additional Inherited Members | |
Static Public Attributes inherited from LatticeTester::Normalizer< RedDbl > | |
static const int | MAX_DIM = 48 |
Protected Attributes inherited from LatticeTester::Normalizer< RedDbl > | |
std::string | m_name |
Name of the normalizer. | |
NormType | m_norm |
Norm associated with this object. | |
RedDbl | m_logDensity |
log of the density, ie log of the number of points of the lattice per unit of volume. | |
int | m_maxDim |
Only elements 1 to m_maxDim (inclusive) of arrays are defined. | |
double | m_beta |
Beta factor. | |
double * | m_bounds |
Contains the bounds on the length of the shortest nonzero vector in the lattice in each dimension. | |
This class implements the Rogers bounds on the density of sphere packing.
The length of vectors is computed using the \({\mathcal{L}}_2\) norm. The bounding lengths, for a lattice containing \(n\) points per unit volume in dimension \(t\), are given by \(\ell_t^* = \gamma_t^{1/2} n^{-1/t}\), where the \(\gamma_t\) are the Rogers lattice constants.
LatticeTester::NormaRogers< RedDbl >::NormaRogers | ( | RedDbl & | logDensity, |
int | t, | ||
double | beta = 1 |
||
) |
Constructor for the Rogers bounds.
The lattices have \(n\) points per unit volume, in all dimensions \(\le t\). The bias factor beta
\(= \beta\) gives more weight to some of the dimensions. Note this class stores the log value of the density to handle larger values. There is no restriction on the dimension \(t\) which can be larger than 48.
References LatticeTester::Normalizer< RedDbl >::init().