Lattice Tester Online Documentation unknown
Software Package For Testing The Uniformity Of Integral Lattices In The Real Space
|
This class offers tools to calculate the same figure of merit (FOM) as FigureOfMerit, but for the m-duals of the projections. More...
Public Member Functions | |
FigureOfMeritDualM (const NTL::Vec< int64_t > &t, Weights &w, Normalizer &norma, ReducerBB< Int, Real > *red=0, bool includeFirst=false) | |
This constructor will call setTVector with the given vector t and includeFirst variable, then set the Weights, Normalizer and ReducerBB to the given values. | |
double | computeMeritSucc (IntLatticeExt< Int, Real > &lat, double minmerit=DBL_MAX) override |
Same as computeMeritSucc in parent class, but for the m-dual lattice. | |
double | computeMeritSuccRebuild (IntLatticeExt< Int, Real > &lat, double minmerit=DBL_MAX) |
Same as computeMeritSucc, except that it rebuilds the basis anew each time the dimension is increased, instead of using incDimBasis. | |
double | computeMeritNonSucc (IntLatticeExt< Int, Real > &lat, IntLattice< Int, Real > &proj, double minmerit=DBL_MAX) override |
Same as computeMeritNonSucc in parent class, but for the m-dual lattice. | |
Public Member Functions inherited from LatticeTester::FigureOfMeritM< Int, Real > | |
FigureOfMeritM (const NTL::Vec< int64_t > &t, Weights &w, Normalizer &norma, ReducerBB< Int, Real > *red=0, bool includeFirst=false) | |
This constructor will call setTVector (t, includeFirst), then set the 'Weights', Normalizer, and ReducerBB to the given values. | |
virtual | ~FigureOfMeritM () |
void | setTVector (const NTL::Vec< int64_t > &t, bool includeFirst) |
Sets the vector \((t_1,..., t_d)\) in the FOM definition to the vector t. | |
int64_t | countProjections () |
Counts and returns the total number of projections that are considered for the given t. | |
void | setWeights (Weights &w) |
Sets the weights used for calculating the FoM. | |
void | setNormalizer (Normalizer &norma) |
Sets the normalizer to norma. | |
void | setLLL (double delta=0.99999) |
Sets the parameters for the LLL reduction. | |
void | setBKZ (double delta=0.99999, int64_t blocksize=10) |
Sets the parameters for the BKZ reduction. | |
void | setBB (bool redBB) |
The BB method will be applied iff this flag is set to true (the default value). | |
void | setReducerBB (ReducerBB< Int, Real > *red) |
Sets the ReducerBB object that will be used for BB. | |
void | setLowBound (double low) |
Sets the low bound for the FOM. | |
void | setVerbosity (int64_t verbose) |
The level of verbosity in the terminal output. | |
void | setCollectLevel (int64_t collect) |
The level of details in the informations that are collected, such as the worst-case projection, the corresponding shortest vector, its square length, etc. | |
double | getMinMeritSqlen () |
Returns the square length of the shortest vector for the worst-case projection. | |
Coordinates | getMinMeritProj () |
Returns the projection that gives the worst merit value. | |
double | computeMeritOneProj (IntLattice< Int, Real > &proj, const Coordinates &coord, double minmerit=DBL_MAX) |
This function computes and returns the merit value for a single projection represented in lattice proj, in dim dimensions. | |
double | computeMerit (IntLatticeExt< Int, Real > &lat, IntLattice< Int, Real > &proj, double minmerit=DBL_MAX) |
This function computes and returns the value of the FOM for the given lattice 'lat', using the norm associated with that lattice. |
Additional Inherited Members | |
Protected Attributes inherited from LatticeTester::FigureOfMeritM< Int, Real > | |
NTL::Vec< int64_t > | m_t |
int64_t | m_tsize = 0 |
Weights * | m_weights |
Normalizer * | m_norma |
double | m_deltaLLL = 0.0 |
double | m_deltaBKZ = 0.99999 |
int64_t | m_blocksizeBKZ = 10 |
bool | m_redBB = true |
CoordinateSets::FromRanges * | m_coordRange |
ReducerBB< Int, Real > * | m_red |
NTL::Vec< Real > | m_sqlen |
bool | m_includeFirst = false |
double | m_lowbound = 0.0 |
double | m_minMerit = DBL_MAX |
double | m_minMeritSqlen = 0 |
Coordinates | m_minMeritProj |
Coordinates | m_worstproj |
clock_t | m_clock = 0 |
int64_t | m_verbose = 0 |
int64_t | m_collectLevel = 0 |
This class offers tools to calculate the same figure of merit (FOM) as FigureOfMerit, but for the m-duals of the projections.
That is, for each projection, a shortest vector is computed for the m-dual of the projection, as explained in the guide, and not for the projection of the $m$-dual lattice. The only change from the parent class FigureOfMerit is in the two functions computeMeritSucc and computeMeritNonSucc. The rest is essentially the same. The computation is stopped (early exit) as soon as we know that the value of the FOM will be too small.
LatticeTester::FigureOfMeritDualM< Int, Real >::FigureOfMeritDualM | ( | const NTL::Vec< int64_t > & | t, |
Weights & | w, | ||
Normalizer & | norma, | ||
ReducerBB< Int, Real > * | red = 0, | ||
bool | includeFirst = false ) |
This constructor will call setTVector with the given vector t and includeFirst variable, then set the Weights, Normalizer and ReducerBB to the given values.
|
overridevirtual |
Same as computeMeritSucc in parent class, but for the m-dual lattice.
Reimplemented from LatticeTester::FigureOfMeritM< Int, Real >.
|
virtual |
Same as computeMeritSucc, except that it rebuilds the basis anew each time the dimension is increased, instead of using incDimBasis.
This approach is inefficient and this function is for experimentation only.
Reimplemented from LatticeTester::FigureOfMeritM< Int, Real >.
|
overridevirtual |
Same as computeMeritNonSucc in parent class, but for the m-dual lattice.
Reimplemented from LatticeTester::FigureOfMeritM< Int, Real >.