Lattice Builder Manual Software Package for Constructing Rank-1 Lattices
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< LatCommon::Weights > weights, PROJDEP projdep=PROJDEP())
Constructor. More...

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)$$. More...

Real normType () const

const LatCommon::Weightsweights () const
Returns the projection-dependent weights $$\gamma_{\mathfrak u}$$. More...

const ProjDepMerit::Base< PROJDEP > & projDepMerit () const
Returns the projection-dependent figure of merit $$D_{\mathfrak u}^2$$.

template<LatType LAT, Compress COMPRESS>
WeightedFigureOfMeritEvaluator< WeightedFigureOfMerit, LAT, COMPRESS > evaluator (Storage< LAT, COMPRESS > 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. More...

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
 PROJDEP Type of projection-dependent figure of merit. ACC Type 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

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

Constructor.

Parameters
 normType Value of $$q$$ as in the $$q$$-norm taken over all projections. weights Weights $$\gamma_{\mathfrak u}^q$$, already raised to the power $$q$$. projdep Projection-dependent figure of merit (evaluates to a square merit value).

## Member Function Documentation

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

Creates a new accumulator.

Parameters
 initialValue Initial accumulator value.
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.

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

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

Implements LatBuilder::FigureOfMerit.

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