Lattice Tester Online Documentation 0.1.0-861
Software Package For Testing The Uniformity Of Integral Lattices In The Real Space
|
This class implements some theoretical bounds on the values of \(P_{\alpha}\) for a lattice (see class Palpha
).
More...
#include <latticetester/NormaPalpha.h>
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 . | |
This class implements some theoretical bounds on the values of \(P_{\alpha}\) for a lattice (see class Palpha
).
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.
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\).
void LatticeTester::NormaPalpha::computeBounds | ( | ) |
Initializes the bounds for the Palpha normalization.
|
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.
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); ''.
void LatticeTester::NormaPalpha::computeBounds | ( | int64_t | alpha | ) |
Initializes the bounds for the Palpha normalization.
|
inline |
Returns the value of \(\alpha\).