Lattice Builder Manual
Software Package for Constructing Rank-1 Lattices
|
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 |
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.
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. |
|
inline |
Constructor.
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). |
|
inlinestatic |
Creates a new accumulator.
initialValue | Initial accumulator value. |
|
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 LatBuilder::WeightedFigureOfMerit< PROJDEP, ACC >::projDepMerit().
|
inlinevirtual |
Returns the projection-dependent weights \(\gamma_{\mathfrak u}\).
Implements LatBuilder::FigureOfMerit.