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::FigureOfMeritDualM< Int, Real > Class Template Reference

This class offers funcitons to calculate the figure of merit (FOM) for the m-dual of any given 'IntLatticeExt' object. More...

#include <latticetester/FigureOfMeritDualM.h>

+ Inheritance diagram for LatticeTester::FigureOfMeritDualM< Int, Real >:

Public Member Functions

 FigureOfMeritDualM (const NTL::vector< int64_t > &t, Weights &w, Normalizer &norma, ReducerBB< Int, Real > *red=0, bool includeFirst=false)
 
double computeMeritSucc (IntLatticeExt< Int, Real > &lat, double minmerit=DBL_MAX) override
 
double computeMeritNonSucc (IntLatticeExt< Int, Real > &lat, IntLattice< Int, Real > &proj, double minmerit=DBL_MAX) override
 
- Public Member Functions inherited from LatticeTester::FigureOfMeritM< Int, Real >
 FigureOfMeritM (const NTL::vector< int64_t > &t, Weights &w, Normalizer &norma, ReducerBB< Int, Real > *red=0, bool includeFirst=false)
 
virtual ~FigureOfMeritM ()
 
void setTVector (const NTL::vector< int64_t > &t, bool includeFirst=false)
 
void setWeights (Weights &w)
 
void setNormalizer (Normalizer &norma)
 
void setLLL (double delta=0.99999)
 
void setBKZ (double delta=0.99999, int64_t blocksize=10)
 
void setBB (bool redBB)
 
void setReducerBB (ReducerBB< Int, Real > *red)
 
void setLowBound (double low)
 
void setVerbosity (int64_t verbose)
 
void setCollectLevel (int64_t collect)
 
double getMinMeritSqlen ()
 
Coordinates getMinMeritProj ()
 
double computeMerit (IntLatticeExt< Int, Real > &lat, IntLattice< Int, Real > &proj, double minmerit=DBL_MAX)
 
double computeMeritOneProj (IntLattice< Int, Real > &proj, const Coordinates &coord, double minmerit=DBL_MAX)
 

Additional Inherited Members

- Public Attributes inherited from LatticeTester::FigureOfMeritM< Int, Real >
NTL::vector< int64_t > m_t
 
int64_t m_tsize = 0
 
Weightsm_weights
 
Normalizerm_norma
 
double m_deltaLLL = 0.0
 
double m_deltaBKZ = 0.99999
 
int64_t m_blocksizeBKZ = 10
 
bool m_redBB = true
 
CoordinateSets::FromRangesm_coordRange
 
ReducerBB< Int, Real > * m_red
 
NTL::vector< 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
 
int64_t m_verbose = 0
 
int64_t m_collectLevel = 0
 

Detailed Description

template<typename Int, typename Real>
class LatticeTester::FigureOfMeritDualM< Int, Real >

This class offers funcitons to calculate the figure of merit (FOM) for the m-dual of any given 'IntLatticeExt' object.

It is implemented as a subclass of 'FigureOfMeritM.h' and thus requires the same input for the constructor. We refer the reader to 'FigureOfMeritM.h' for further details. The main method of this class is 'computeMeritM' which calculates the actual FOM for the m-dual lattice of a given lattice. The computation is stopped (early exit) as soon as we know that the value of the FOM will be outside the interval [low, high].

Note: The class works only for the case where "PrecisionType == DOUBLE".
This is a limitation.

Constructor & Destructor Documentation

◆ FigureOfMeritDualM()

template<typename Int , typename Real >
LatticeTester::FigureOfMeritDualM< Int, Real >::FigureOfMeritDualM ( const NTL::vector< int64_t > & t,
Weights & w,
Normalizer & norma,
ReducerBB< Int, Real > * red = 0,
bool includeFirst = false )

Member Function Documentation

◆ computeMeritNonSucc()

template<typename Int , typename Real >
double LatticeTester::FigureOfMeritDualM< Int, Real >::computeMeritNonSucc ( IntLatticeExt< Int, Real > & lat,
IntLattice< Int, Real > & proj,
double minmerit = DBL_MAX )
overridevirtual

◆ computeMeritSucc()

template<typename Int , typename Real >
double LatticeTester::FigureOfMeritDualM< Int, Real >::computeMeritSucc ( IntLatticeExt< Int, Real > & lat,
double minmerit = DBL_MAX )
overridevirtual

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