Lattice Tester Guide  1.0-9
Software Package For Testing The Uniformity Of Integral Lattices In The Real Space
LatticeTester::NormaPalpha< Int, RedDbl > Class Template Reference

This class implements theoretical bounds on the values of \(P_{\alpha}\) for a lattice (see class Palpha). More...

#include <latticetester/NormaPalpha.h>

Inherits LatticeTester::Normalizer< RedDbl >.

Public Member Functions

 NormaPalpha (const Int &m, int alpha, int s, NormType norm=L2NORM)
 Constructor for the bounds \(B_{\alpha}(s)\) obtained for lattices, in all dimensions \(\le s\), where \(\alpha= {}\)alpha. More...
 
double calcBound (int alpha, int s)
 Computes and returns the bound \(B_{\alpha}(s)\) given in [25]  (p. More...
 
void init (int alpha)
 Initializes the bounds for the Palpha normalization. More...
 
int getAlpha () const
 Returns the value of \(\alpha\). 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...
 
virtual double getGamma (int j) const
 Returns the value of a lattice constant \(\gamma\) 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...
 

Detailed Description

template<typename Int, typename RedDbl>
class LatticeTester::NormaPalpha< Int, RedDbl >

This class implements theoretical bounds on the values of \(P_{\alpha}\) for a lattice (see class Palpha).

Constructor & Destructor Documentation

◆ NormaPalpha()

template<typename Int , typename RedDbl >
LatticeTester::NormaPalpha< Int, RedDbl >::NormaPalpha ( const Int &  m,
int  alpha,
int  s,
NormType  norm = L2NORM 
)

Constructor for the bounds \(B_{\alpha}(s)\) obtained for lattices, in all dimensions \(\le s\), where \(\alpha= {}\)alpha.

The lattices have rank \(1\), with \(m\) points per unit volume. Restriction: \(2 \le s \le48\), \(\alpha\ge2\), and \(m\) prime.

Member Function Documentation

◆ calcBound()

template<typename Int , typename RedDbl >
double LatticeTester::NormaPalpha< Int, RedDbl >::calcBound ( int  alpha,
int  s 
)

Computes and returns the bound \(B_{\alpha}(s)\) given in [25]  (p.

83, Theorem 4.4). Given \(s > 1\), \(\alpha> 1\), \(m\) prime, and \(m > e^{\alpha s/(\alpha-1)}\), then there exists an integer vector \(\mathbf{a} \in\mathbb Z^s\) such that

\[ P_{\alpha}(s, \mathbf{a}) \le B_{\alpha}(s) = \frac{e}{s}^{\alpha s} \frac{(2\ln m + s)^{\alpha s}}{m^{\alpha}}. \]

If the conditions for the existence of the bound are not satisfied, the function returns \(-1\).

◆ getAlpha()

template<typename Int , typename RedDbl >
int LatticeTester::NormaPalpha< Int, RedDbl >::getAlpha ( ) const
inline

Returns the value of \(\alpha\).

◆ init()

template<typename Int , typename RedDbl >
void LatticeTester::NormaPalpha< Int, RedDbl >::init ( int  alpha)

Initializes the bounds for the Palpha normalization.


The documentation for this class was generated from the following file: