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>

Inherits LatBuilder::MeritSeq::CoordUniformState< LAT, COMPRESS >.

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
storageStorage configuration.
weightsProduct weights \( \gamma_{\mathfrak u} \).

References LatBuilder::MeritSeq::ConcreteCoordUniformState< LAT, COMPRESS, WEIGHTS >::reset().

Member Function Documentation

template<LatType LAT, Compress COMPRESS>
std::unique_ptr<CoordUniformState<LAT, COMPRESS> > LatBuilder::MeritSeq::ConcreteCoordUniformState< LAT, COMPRESS, LatCommon::ProductWeights >::clone ( ) const
inlinevirtual
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. \]

Implements LatBuilder::MeritSeq::CoordUniformState< LAT, COMPRESS >.


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