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

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::ProjectionDependentWeightsgetBaseWeights () 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, WeightWeightsMap
 
- 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.
 

Detailed Description

template<class KERNEL>
class LatBuilder::Interlaced::IPDWeights< 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

◆ IPDWeights()

template<class KERNEL >
LatBuilder::Interlaced::IPDWeights< KERNEL >::IPDWeights ( std::unique_ptr< LatticeTester::ProjectionDependentWeights weights,
const KERNEL &  kernel 
)

Constructor.

Parameters
weightsProjection dependent weights to interlace.
kernelInterlaced kernel.

Member Function Documentation

◆ format()

template<class KERNEL >
virtual void LatBuilder::Interlaced::IPDWeights< 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.

Reimplemented from LatticeTester::ProjectionDependentWeights.

◆ getBaseWeights()

template<class KERNEL >
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|} \]

◆ setWeight()

template<class KERNEL >
virtual void LatBuilder::Interlaced::IPDWeights< KERNEL >::setWeight ( const LatticeTester::Coordinates projection,
double  weight 
)
overridevirtual

Sets the weight of the projection specified by projection. Not possible for interlaced weights.

Will throw a runtime error.

Reimplemented from LatticeTester::ProjectionDependentWeights.


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