LatNet Builder Manual 2.1.3-6
Software Package for Constructing Highly Uniform Point Sets
Loading...
Searching...
No Matches
LatBuilder::WeightedFigureOfMerit< PROJDEP, ACC > Class Template Reference

Weighted figure of merit. More...

#include <WeightedFigureOfMerit.h>

Inherits LatBuilder::FigureOfMerit.

Public Member Functions

 WeightedFigureOfMerit (Real normType, std::unique_ptr< LatticeTester::Weights > weights, PROJDEP projdep=PROJDEP())
 Constructor.
bool symmetric () const
 Returns true if the value of the figure of merit is invariant under the transormation \(a_j \mapsto n - a_j\) for any \(j=1,\dots,s\), where \(n\) and \(s\) are, respectively, the number of points and the dimension of the lattice and \(a_j\) is the \(j\)-th component of the generating vector \(\boldsymbol a = (a_1, \dots, a_s)\).
Real normType () const
const LatticeTester::Weightsweights () const
 Returns the projection-dependent weights \(\gamma_{\mathfrak u}\).
const ProjDepMerit::Base< PROJDEP > & projDepMerit () const
 Returns the projection-dependent figure of merit \(D_{\mathfrak u}\).
template<LatticeType LR, EmbeddingType ET, Compress COMPRESS, PerLevelOrder PLO>
WeightedFigureOfMeritEvaluator< WeightedFigureOfMerit, LR, ET, COMPRESS, PLO > evaluator (Storage< LR, ET, COMPRESS, PLO > storage) const
 Creates an evaluator for the figure of merit.
std::string name () const
Public Member Functions inherited from LatBuilder::FigureOfMerit
virtual ~FigureOfMerit ()
 Destructor.

Static Public Member Functions

static constexpr Compress suggestedCompression ()
template<typename T>
static Accumulator< ACC, T > accumulator (T initialValue)
 Creates a new accumulator.
static std::string evaluationName ()

Detailed Description

template<class PROJDEP, template< typename > class ACC>
class LatBuilder::WeightedFigureOfMerit< PROJDEP, ACC >

Weighted figure of merit.

This class implements generic weighted average-case figures of merit of the form

\[ D(P_n) = \left[ \mathop{\mathcal K}_{\mathfrak u \in \mathcal J} \left\{ \gamma_{\mathfrak u}^q D_{\mathfrak u}^q(P_n(\mathfrak u)) \right\} \right]^{1/q}, \]

where \(\mathcal K\) is an operator that combines the set elements (typically a sum on its elements or the extraction of the maximum element), using the given projection-dependent weights \(\gamma_{\mathfrak u}\) and a projection-dependent figure of merit \(D_{\mathfrak u}^2\), for all projections \(\mathfrak u\) in a given set of coordinate sets \(\mathcal J\).

The set of projections under consideration will typically be

\[ \mathcal J = \left\{ \mathfrak u \::\: \mathfrak u \subseteq \{1,\dots,s\} \right\} \]

for an exhaustive search over lattices of dimension \(s\), or

\[ \mathcal J = \left\{ \mathfrak u \cup \{s\} \::\: \mathfrak u \subseteq \{1,\dots,s\} \right\} \]

for a CBC search for the \(s\)th coordinate of a lattice.

Template Parameters
PROJDEPType of projection-dependent figure of merit.
ACCType of binary operator to use for the accumulator that defines the operator \(\mathcal K\) on the set elements. For example, Functor::Max or Functor::Sum.
Note
The WeightedFigureOfMeritEvaluator object returned by the evaluator() function produces a square merit value.
Examples
tutorial/MeritSeqCBC.cc, tutorial/MeritSeqCBCSignals.cc, tutorial/WeightedFigureOfMerit.cc, tutorial/WeightedFigureOfMeritCBC.cc, and tutorial/WeightedFigureOfMeritSignals.cc.

Constructor & Destructor Documentation

◆ WeightedFigureOfMerit()

template<class PROJDEP, template< typename > class ACC>
LatBuilder::WeightedFigureOfMerit< PROJDEP, ACC >::WeightedFigureOfMerit ( Real normType,
std::unique_ptr< LatticeTester::Weights > weights,
PROJDEP projdep = PROJDEP() )
inline

Constructor.

Parameters
normTypeValue of \(q\) as in the \(q\)-norm taken over all projections.
weightsWeights \(\gamma_{\mathfrak u}^q\), already raised to the power \(q\).
projdepProjection-dependent figure of merit (evaluates to a square merit value).

References weights().

Member Function Documentation

◆ accumulator()

template<class PROJDEP, template< typename > class ACC>
template<typename T>
Accumulator< ACC, T > LatBuilder::WeightedFigureOfMerit< PROJDEP, ACC >::accumulator ( T initialValue)
inlinestatic

Creates a new accumulator.

Parameters
initialValueInitial accumulator value.

◆ name()

template<class PROJDEP, template< typename > class ACC>
std::string LatBuilder::WeightedFigureOfMerit< PROJDEP, ACC >::name ( ) const
inlinevirtual

◆ normType()

template<class PROJDEP, template< typename > class ACC>
Real LatBuilder::WeightedFigureOfMerit< PROJDEP, ACC >::normType ( ) const
inlinevirtual

◆ symmetric()

template<class PROJDEP, template< typename > class ACC>
bool LatBuilder::WeightedFigureOfMerit< PROJDEP, ACC >::symmetric ( ) const
inlinevirtual

Returns true if the value of the figure of merit is invariant under the transormation \(a_j \mapsto n - a_j\) for any \(j=1,\dots,s\), where \(n\) and \(s\) are, respectively, the number of points and the dimension of the lattice and \(a_j\) is the \(j\)-th component of the generating vector \(\boldsymbol a = (a_1, \dots, a_s)\).

Implements LatBuilder::FigureOfMerit.

References projDepMerit().

◆ weights()

template<class PROJDEP, template< typename > class ACC>
const LatticeTester::Weights & LatBuilder::WeightedFigureOfMerit< PROJDEP, ACC >::weights ( ) const
inlinevirtual

Returns the projection-dependent weights \(\gamma_{\mathfrak u}\).

Implements LatBuilder::FigureOfMerit.

Referenced by WeightedFigureOfMerit().


The documentation for this class was generated from the following file:
  • include/latbuilder/WeightedFigureOfMerit.h