Lattice Tester Online Documentation 0.1.0-861
Software Package For Testing The Uniformity Of Integral Lattices In The Real Space
Loading...
Searching...
No Matches
LatticeTester::NormaPalpha Class Reference

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

#include <latticetester/NormaPalpha.h>

+ Inheritance diagram for LatticeTester::NormaPalpha:

Public Member Functions

 NormaPalpha (const std::int64_t m, int64_t alpha, int64_t s, NormType norm=L2NORM)
 Constructor for the bounds \(B_{\alpha}(s)\) obtained for lattices, in all dimensions \(\le s\), where \(\alpha= {}\)alpha.
 
double calcBound (int64_t alpha, int64_t s)
 Computes and returns the bound \(B_{\alpha}(s)\) given in [12]  (p.
 
void computeBounds (int64_t alpha)
 Initializes the bounds for the Palpha normalization.
 
void computeBounds ()
 Initializes the bounds for the Palpha normalization.
 
int64_t getAlpha () const
 Returns the value of \(\alpha\).
 
virtual void computeBounds (double logDensity)
 Preventing the compiler from raising the warning: '' latticetester/NormaPalpha.h:59:9: warning: 'LatticeTester::NormaPalpha::init' hides overloaded virtual function [-Woverloaded-virtual] void init (int64_t alpha); ''.
 
void computeBounds (double logm, int64_t k)
 Preventing the compiler from raising the warning: '' latticetester/NormaPalpha.h:59:9: warning: 'LatticeTester::NormaPalpha::init' hides overloaded virtual function [-Woverloaded-virtual] void init (int64_t alpha); ''.
 
- Public Member Functions inherited from LatticeTester::Normalizer
 Normalizer (double logm, int64_t k, int64_t maxDim, std::string name="", NormType norm=L2NORM)
 This is the preferred constructor in all the subclasses.
 
 Normalizer (double logDensity, int64_t maxDim, std::string name="", NormType norm=L2NORM)
 ***** DEPRECATED *****
 
 Normalizer (int64_t maxDim, std::string name, NormType norm=L2NORM)
 This constructor creates a Normalizer object without computing any bounds.
 
virtual ~Normalizer ()
 Destructor.
 
void computeBounds (double logm, int64_t k)
 This method is called by the constructors of subclasses, in which the constants gamma_t are known.
 
std::string toString () const
 Returns a string that describes this object.
 
NormType getNorm () const
 Returns the norm associated with this object.
 
int64_t getMaxDim () const
 Returns the maximal dimension for this object.
 
virtual double * getBounds () const
 Returns the array that contains the bounds on the lengths of the shortest nonzero vectors.
 
virtual double getBound (int64_t j) const
 Returns the bound on the length of the shortest nonzero vector in j dimensions.
 
virtual double getGamma (int64_t j) const
 Returns the value of a lattice constant \(\gamma\) in dimension \(j\).
 

Additional Inherited Members

- Static Public Attributes inherited from LatticeTester::Normalizer
static const int64_t MAX_DIM = 48
 The maximum dimension of the lattices for which this class can give an upper bound.
 
- Protected Attributes inherited from LatticeTester::Normalizer
std::string m_name
 Name of the normalizer.
 
NormType m_norm
 Norm type associated with this object.
 
int64_t m_maxDim
 Maximum dimension.
 
double * m_bounds
 Contains the bounds on the length of the shortest nonzero vector in the lattice in each dimension up to maxDim.
 

Detailed Description

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

Constructor & Destructor Documentation

◆ NormaPalpha()

LatticeTester::NormaPalpha::NormaPalpha ( const std::int64_t m,
int64_t alpha,
int64_t 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()

double LatticeTester::NormaPalpha::calcBound ( int64_t alpha,
int64_t s )

Computes and returns the bound \(B_{\alpha}(s)\) given in [12]  (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\).

◆ computeBounds() [1/4]

void LatticeTester::NormaPalpha::computeBounds ( )

Initializes the bounds for the Palpha normalization.

◆ computeBounds() [2/4]

void LatticeTester::Normalizer::computeBounds ( double logDensity)
virtual

Preventing the compiler from raising the warning: '' latticetester/NormaPalpha.h:59:9: warning: 'LatticeTester::NormaPalpha::init' hides overloaded virtual function [-Woverloaded-virtual] void init (int64_t alpha); ''.

Reimplemented from LatticeTester::Normalizer.

◆ computeBounds() [3/4]

void LatticeTester::Normalizer::computeBounds ( double logm,
int64_t k )

Preventing the compiler from raising the warning: '' latticetester/NormaPalpha.h:59:9: warning: 'LatticeTester::NormaPalpha::init' hides overloaded virtual function [-Woverloaded-virtual] void init (int64_t alpha); ''.

◆ computeBounds() [4/4]

void LatticeTester::NormaPalpha::computeBounds ( int64_t alpha)

Initializes the bounds for the Palpha normalization.

◆ getAlpha()

int64_t LatticeTester::NormaPalpha::getAlpha ( ) const
inline

Returns the value of \(\alpha\).


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