LatNet Builder Manual
2.0.1-11
Software Package for Constructing Highly Uniform Point Sets
|
Class to represent interlaced projection-dependent weights. More...
#include <IPDWeights.h>
Inherits LatticeTester::ProjectionDependentWeights.
Public Member Functions | |
IPDWeights (std::unique_ptr< LatticeTester::ProjectionDependentWeights > weights, const KERNEL &kernel) | |
Constructor. More... | |
virtual void | setWeight (const LatticeTester::Coordinates &projection, double weight) override |
Sets the weight of the projection specified by projection . Not possible for interlaced weights. More... | |
const LatticeTester::ProjectionDependentWeights & | getBaseWeights () const |
Returns a const reference to the corrected base weights. More... | |
virtual unsigned int | interlacingFactor () const override |
Returns the interlacing factor. | |
Public Member Functions inherited from LatticeTester::ProjectionDependentWeights | |
ProjectionDependentWeights () | |
Constructs projection-dependent weights. | |
virtual | ~ProjectionDependentWeights () |
Destructor. | |
ProjectionDependentWeights (const ProjectionDependentWeights &) | |
Copy constructor. | |
virtual Weight | getWeight (const Coordinates &projection) const |
Returns the weight of the projection specified by projection . | |
virtual unsigned int | getSize () const |
virtual const WeightsMap & | getWeightsForLargestIndex (Coordinates::value_type largestIndex) const |
Returns a map of weights for all projections whose largest index is largestIndex . | |
Public Member Functions inherited from LatticeTester::Weights | |
virtual | ~Weights () |
Destructor. | |
Protected Member Functions | |
virtual void | format (std::ostream &os) const override |
Identifies the type of weights, formats them and outputs them on os . More... | |
Additional Inherited Members | |
Protected Types inherited from LatticeTester::ProjectionDependentWeights | |
typedef std::map< Coordinates, Weight > | WeightsMap |
Protected Attributes inherited from LatticeTester::ProjectionDependentWeights | |
std::vector< WeightsMap > | m_weights |
Per-projection weights, regrouped by largest coordinate index. | |
Static Protected Attributes inherited from LatticeTester::ProjectionDependentWeights | |
static const WeightsMap | m_emptyWeights |
Used only to return an empty map. | |
Related Functions inherited from LatticeTester::ProjectionDependentWeights | |
std::istream & | operator>> (std::istream &is, ProjectionDependentWeights &weights) |
Related Functions inherited from LatticeTester::Weights | |
std::ostream & | operator<< (std::ostream &os, const Weights &o) |
Class to represent interlaced projection-dependent weights.
Uses operator \(w\) defined in Corollary 1. of [10] to transform weights in dimension \(s\) into weights in dimension \(ds\). If \( \mathfrak u \subseteq \{1, \dots, ds\}\):
\[ w(\mathfrak u) = \{ \lceil j/d \rceil, j \in \mathfrak u\}. \]
Additionally, depending on the kernel, corrections must be made. This corresponds to the correction product weights \(\delta\) and the correction order-dependent weight \(\Gamma\). The kernel implements methods to compute these correction weights. To wrap it up, the formula for the interlaced weights \(\bar{\gamma}\) is as follows:
\[ \bar{\gamma}_{\mathfrak u} = \gamma_{w(\mathfrak u)} \prod_{j \in \mathfrak u} \delta_j \Gamma_{|w(\mathfrak u)|}. \]
for \( \mathfrak u \subseteq \{1, \dots, d s\} \).
KERNEL | Kernel. |
LatBuilder::Interlaced::IPDWeights< KERNEL >::IPDWeights | ( | std::unique_ptr< LatticeTester::ProjectionDependentWeights > | weights, |
const KERNEL & | kernel | ||
) |
Constructor.
weights | Projection dependent weights to interlace. |
kernel | Interlaced kernel. |
|
overrideprotectedvirtual |
Identifies the type of weights, formats them and outputs them on os
.
Reimplemented from LatticeTester::ProjectionDependentWeights.
const LatticeTester::ProjectionDependentWeights& LatBuilder::Interlaced::IPDWeights< KERNEL >::getBaseWeights | ( | ) | const |
Returns a const reference to the corrected base weights.
More precisely these weights equal:
\[ \{1, \dots, s \} \supseteq \mathfrak u \mapsto gamma_{\mathfrak u} \Gamma_{|\mathfrak u|} \]
|
overridevirtual |
Sets the weight of the projection specified by projection
. Not possible for interlaced weights.
Will throw a runtime error.
Reimplemented from LatticeTester::ProjectionDependentWeights.