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 Member Functions | List of all members
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::Weights & | weights () 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 ()

## Additional Inherited Members

## 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<ACC, T> LatBuilder::WeightedFigureOfMerit< PROJDEP, ACC >::accumulator | ( | T | initialValue | ) |
| inline static

Creates a new accumulator.

Parameters

  initialValue | Initial accumulator value.

template<class PROJDEP, template< typename > class ACC>

bool LatBuilder::WeightedFigureOfMerit< PROJDEP, ACC >::symmetric | ( |  | ) | const
| inline virtual

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 LatBuilder::WeightedFigureOfMerit< PROJDEP, ACC >::projDepMerit().

template<class PROJDEP, template< typename > class ACC>

const LatCommon::Weights& LatBuilder::WeightedFigureOfMerit< PROJDEP, ACC >::weights | ( |  | ) | const
| inline virtual

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