Lattice Builder Manual Software Package for Constructing Rank-1 Lattices
LatBuilder::MeritSeq::ConcreteCoordUniformState< LAT, COMPRESS, LatCommon::ProjectionDependentWeights > Class Template Reference

Implementation of CoordUniformState for projection-dependent weights. More...

#include <ConcreteCoordUniformState-PD.h>

## Public Member Functions

ConcreteCoordUniformState (const Storage< LAT, COMPRESS > &storage, const LatCommon::ProjectionDependentWeights &weights)
Constructor. More...

void reset ()
Resets the state to dimension 0 with new specified storage configuration.

void update (const RealVector &kernelValues, Modulus gen)
Updates the current state using the specified row of the permuted matrix of kernel values. More...

RealVector weightedState () const
Computes and returns the weighted state vector $$\boldsymbol q_s$$. More...

std::unique_ptr< CoordUniformState< LAT, COMPRESS > > clone () const
Returns a copy of this instance. More...

Public Member Functions inherited from LatBuilder::MeritSeq::CoordUniformState< LAT, COMPRESS >
CoordUniformState (Storage< LAT, COMPRESS > storage)

const Storage< LAT, COMPRESS > & storage () const
Returns a pointer to the storage configuration.

Dimension dimension () const
Returns the value of the internal dimension counter.

## Detailed Description

### template<LatType LAT, Compress COMPRESS> class LatBuilder::MeritSeq::ConcreteCoordUniformState< LAT, COMPRESS, LatCommon::ProjectionDependentWeights >

Implementation of CoordUniformState for projection-dependent weights.

Define

$\boldsymbol p_{\mathfrak u} = \left( \prod_{j \in \mathfrak u} \; \omega(x_{0,j}), \dots, \prod_{j \in \mathfrak u} \; \omega(x_{n-1,j}) \right) \quad (\forall \mathfrak u \subseteq \{1,\dots,s\})$

for $$s \geq 1$$. Then, for $$s \geq 1$$, we have

$\mathcal D_s^2 = \mathcal D_{s-1}^2 + \frac1n \boldsymbol\omega_s \cdot \sum_{\mathfrak u \subseteq \{1,\dots,s-1\}} \gamma_{\mathfrak u \cup \{s\}} \, \boldsymbol p_{\mathfrak u}$

and

$\boldsymbol p_{\mathfrak u \cup \{s\}} = \boldsymbol\omega_s \odot \boldsymbol p_{\mathfrak u} \quad (\forall \mathfrak u \subseteq \{1,\dots,s-1\}),$

where $$\cdot$$ and $$\odot$$ denote the scalar and the element-by-element product, respectively. For $$s=0$$ and $$\mathfrak u = \emptyset$$, we artificially define $$\mathcal D_0^2 = 0$$ and $$\boldsymbol p_{\emptyset} = \boldsymbol 1$$.

See CoordUniformCBC for the definition of $$\boldsymbol \omega_s$$.

## Constructor & Destructor Documentation

template<LatType LAT, Compress COMPRESS>
 LatBuilder::MeritSeq::ConcreteCoordUniformState< LAT, COMPRESS, LatCommon::ProjectionDependentWeights >::ConcreteCoordUniformState ( const Storage< LAT, COMPRESS > & storage, const LatCommon::ProjectionDependentWeights & weights )
inline

Constructor.

Sets $$\mathcal D_0^2 = 0$$ and $$\boldsymbol p_{\emptyset} = \boldsymbol 1$$.

Parameters
 storage Storage configuration. weights Projection-dependent weights $$\gamma_{\mathfrak u}$$.

## Member Function Documentation

template<LatType LAT, Compress COMPRESS>
 std::unique_ptr > LatBuilder::MeritSeq::ConcreteCoordUniformState< LAT, COMPRESS, LatCommon::ProjectionDependentWeights >::clone ( ) const
inlinevirtual

Returns a copy of this instance.

template<LatType LAT, Compress COMPRESS>
 void LatBuilder::MeritSeq::ConcreteCoordUniformState< LAT, COMPRESS, LatCommon::ProjectionDependentWeights >::update ( const RealVector & kernelValues, Modulus gen )
virtual

Updates the current state using the specified row of the permuted matrix of kernel values.

This corresponds to appending a component $$a_j$$ to the generating vector $$\boldsymbol a = (a_1, \dots, a_{j-1})$$. To each possible value of $$a_j$$ corresponds a distinct row of the matrix $$\boldsymbol\Omega$$ of kernel values.

This increases the internal dimension counter.

Computes

$\boldsymbol p_{\mathfrak u \cup \{s\}} = \boldsymbol\omega_s \odot \boldsymbol p_{\mathfrak u} \quad (\forall \mathfrak u \subseteq \{1,\dots,s-1\}).$

Reimplemented from LatBuilder::MeritSeq::CoordUniformState< LAT, COMPRESS >.

template<LatType LAT, Compress COMPRESS>
 RealVector LatBuilder::MeritSeq::ConcreteCoordUniformState< LAT, COMPRESS, LatCommon::ProjectionDependentWeights >::weightedState ( ) const
virtual

Computes and returns the weighted state vector $$\boldsymbol q_s$$.

Computes

$\boldsymbol q_s = \sum_{\mathfrak u \subseteq \{1,\dots,s\}} \gamma_{\mathfrak u \cup \{s+1\}} \, \boldsymbol p_{\mathfrak u}.$

The documentation for this class was generated from the following file:
• latbuilder/include/latbuilder/MeritSeq/ConcreteCoordUniformState-PD.h