Lattice Builder Manual Software Package for Constructing Rank-1 Lattices

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files
- Examples

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends Modules Pages
Public Member Functions | Static Public Attributes | Protected Attributes | List of all members
LatCommon::Normalizer Class Reference

Classes which inherit from this base class are used in implementing bounds on the length of the shortest nonzero vector in a lattice [3] . More...

`#include <Normalizer.h>`

Inherited by LatCommon::NormaBestLat, LatCommon::NormaLaminated, LatCommon::NormaMinkL1, LatCommon::NormaMinkowski, and LatCommon::NormaRogers.

## Public Member Functions
| Normalizer (const MScal &m, int k, int t, std::string Name, NormType norm=L2NORM, double beta=1)
virtual | ~Normalizer ()
| Destructor.
void | init (const MScal &m, int k, 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 | setNorm (NormType norm)
| Sets the norm associated with this object to `norm`.
int | getDim () const
| Returns the maximal dimension for this object.
double & | getCst (int j)
| 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 the lattice constant \(\gamma_j\) in dimension \(j\). More...

## Static Public Attributes
static const int | MAX_DIM = 48
| Constructor for the bounds. More...

## Protected Attributes
std::string | m_name
| Name of the normalizer.
NormType | m_norm
| Norm associated with this object.
MScal | m_m
| Number of points of the lattice per unit volume.
int | m_rank
| Rank of the lattice.
int | m_maxDim
| Only elements 1 to `m_maxDim` (inclusive) of arrays are defined.
double | m_beta
| Beta factor.
double * | m_cst
| Contains the bounds on the length of the shortest nonzero vector in the lattice in each dimension.

## Detailed Description

Classes which inherit from this base class are used in implementing bounds on the length of the shortest nonzero vector in a lattice [3] .

These bounds are used to normalize the length of the shortest vectors. Tight lower bounds are available for all dimensions for many important cases. In most cases, the \({\cal L}_2\) norm is used to compute the length of vectors.

For some figures of merit, no useful bounds are known to normalize the length of the shortest vector. In these cases, this base class will be used as normalizer since it simply sets all normalization constants to 1. This is necessary because the tests compare the normalized values of the merit when searching for good lattices.

## Member Function Documentation

double& LatCommon::Normalizer::getCst | ( | int | j | ) |

Returns the bound on the length of the shortest nonzero vector in dimension \(j\).

% Indices \(j\) goes from 1 to the value returned by `dim`.

virtual double LatCommon::Normalizer::getGamma | ( | int | j | ) | const
| virtual

Returns the value of the lattice constant \(\gamma_j\) in dimension \(j\).

For this base class, always returns 1.

Reimplemented in LatCommon::NormaMinkL1, LatCommon::NormaBestLat, LatCommon::NormaLaminated, LatCommon::NormaRogers, and LatCommon::NormaMinkowski.

void LatCommon::Normalizer::init | ( | const MScal & | m,
|  | int | k,
|  | double | beta
| ) |  |

Initializes the bounds on the length of the shortest vector.

The lattices have \(m\) points per unit volume, are of rank \(k\), and the bias factor is `beta` for all dimensions \(j \le \) `maxDim`.

## Member Data Documentation

const int LatCommon::Normalizer::MAX_DIM = 48
| static

Constructor for the bounds.

Deals with lattices of rank \(k\), having \(m\) points per unit volume, in all dimensions \(\le t\). `Name` is the name of the Normalizer. The bias factor `beta` \(= \beta\) gives more weight to some of the dimensions: taking \(\beta < 1\) inflates the figure of merit by \((1/\beta)^t\), thus weakening the requirements for large \(t\) in a worst-case figure of merit. One normally uses \(\beta = 1\).

Note
  Richard: Je crois que ce facteur `beta` devrait disparaître car des poids beaucoup plus généraux sont maintenant implantées dans les classes `*Weights`.

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

- latcommon/include/latcommon/Normalizer.h