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

Implementation of CoordUniformState for product weights. More...

#include <ConcreteCoordUniformState-P.h>

## Public Member Functions

ConcreteCoordUniformState (const Storage< LAT, COMPRESS > &storage, const LatCommon::ProductWeights &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 the weighted combination state vectors. 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::ProductWeights >

Implementation of CoordUniformState for product weights.

This formulation is as proposed in [4] . Define

$\boldsymbol p_s = \left( \prod_{j=1}^s \left[ 1 + \gamma_j \omega(x_{0,j}) \right], \dots, \prod_{j=1}^s \left[ 1 + \gamma_j \omega(x_{n-1,j}) \right] \right),$

for $$s \geq 1$$, with $$\boldsymbol p_0 = \boldsymbol 1$$. Then,

$\mathcal D_s^2 = \mathcal D_{s-1}^2 + \frac{\gamma_s}{n} \boldsymbol\omega_s \cdot \boldsymbol p_{s-1}$

and

$\boldsymbol p_s = (\boldsymbol 1 + \gamma_s \boldsymbol\omega_s) \odot \boldsymbol p_{s-1}.$

## Constructor & Destructor Documentation

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

Constructor.

Sets $$\mathcal D_0^2 = 0$$ and $$\boldsymbol p_0 = \boldsymbol 1$$.

Parameters
 storage Storage configuration. weights Product weights $$\gamma_{\mathfrak u}$$.

## Member Function Documentation

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

Returns a copy of this instance.

template<LatType LAT, Compress COMPRESS>
 void LatBuilder::MeritSeq::ConcreteCoordUniformState< LAT, COMPRESS, LatCommon::ProductWeights >::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_s = (\boldsymbol 1 + \gamma_s \boldsymbol\omega_s) \odot \boldsymbol p_{s-1}.$

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

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

Computes the weighted combination state vectors.

Computes

$\boldsymbol q_s = \gamma_{s+1} \boldsymbol p_s.$

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