LatNet Builder Manual  2.0.1-11
Software Package for Constructing Highly Uniform Point Sets
LatBuilder::Interlaced::IPODWeights< KERNEL > Class Template Reference

Class to represent interlaced projection-dependent weights. More...

#include <IPODWeights.h>

Inherits LatticeTester::Weights.

Public Member Functions

 IPODWeights (std::unique_ptr< LatticeTester::ProductWeights > weights, const KERNEL &kernel)
 Constructor. More...
 
 IPODWeights (std::unique_ptr< LatticeTester::OrderDependentWeights > weights, const KERNEL &kernel)
 Constructor. More...
 
 IPODWeights (std::unique_ptr< LatticeTester::PODWeights > weights, const KERNEL &kernel)
 Constructor. More...
 
double getWeight (const Coordinates &projection) const override
 Returns the weight of the projection specified by projection.
 
virtual unsigned int interlacingFactor () const override
 Returns the interlacing factor.
 
double getCorrectionProductWeightForCoordinate (Coordinates::size_type coordinate) const
 Returns the correction product weight \(\delta_j\). More...
 
const LatticeTester::PODWeightsgetBaseWeights () const
 Returns a const reference to the corrected base weights. More...
 
double getWeightForOrder (Coordinates::size_type order) const
 
double getWeightForCoordinate (Coordinates::size_type coordinate) const
 
- Public Member Functions inherited from LatticeTester::Weights
virtual ~Weights ()
 Destructor.
 

Protected Member Functions

void format (std::ostream &os) const override
 Identifies the type of weights, formats them and outputs them on os. More...
 

Additional Inherited Members

Detailed Description

template<typename KERNEL>
class LatBuilder::Interlaced::IPODWeights< KERNEL >

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\} \).

Template Parameters
KERNELKernel.

Constructor & Destructor Documentation

◆ IPODWeights() [1/3]

template<typename KERNEL>
LatBuilder::Interlaced::IPODWeights< KERNEL >::IPODWeights ( std::unique_ptr< LatticeTester::ProductWeights weights,
const KERNEL &  kernel 
)

Constructor.

Parameters
weightsBase weights.
kernelKernel.

◆ IPODWeights() [2/3]

template<typename KERNEL>
LatBuilder::Interlaced::IPODWeights< KERNEL >::IPODWeights ( std::unique_ptr< LatticeTester::OrderDependentWeights weights,
const KERNEL &  kernel 
)

Constructor.

Parameters
weightsBase weights.
kernelKernel.

◆ IPODWeights() [3/3]

template<typename KERNEL>
LatBuilder::Interlaced::IPODWeights< KERNEL >::IPODWeights ( std::unique_ptr< LatticeTester::PODWeights weights,
const KERNEL &  kernel 
)

Constructor.

Parameters
weightsBase weights.
kernelKernel.

Member Function Documentation

◆ format()

template<typename KERNEL>
void LatBuilder::Interlaced::IPODWeights< KERNEL >::format ( std::ostream &  os) const
overrideprotectedvirtual

Identifies the type of weights, formats them and outputs them on os.

Remarks
Deriving classes should identify themselves in the output.

Implements LatticeTester::Weights.

◆ getBaseWeights()

template<typename KERNEL>
const LatticeTester::PODWeights& LatBuilder::Interlaced::IPODWeights< 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|} \]

◆ getCorrectionProductWeightForCoordinate()

template<typename KERNEL>
double LatBuilder::Interlaced::IPODWeights< KERNEL >::getCorrectionProductWeightForCoordinate ( Coordinates::size_type  coordinate) const

Returns the correction product weight \(\delta_j\).

Parameters
coordinateValue of \(j\).

The documentation for this class was generated from the following file: