Lattice Builder Manual
Software Package for Constructing Rank-1 Lattices
|
Implementation of CoordUniformState for order-dependent weights. More...
#include <ConcreteCoordUniformState-OD.h>
Inherits LatBuilder::MeritSeq::CoordUniformState< LAT, COMPRESS >.
Public Member Functions | |
ConcreteCoordUniformState (const Storage< LAT, COMPRESS > &storage, const LatCommon::OrderDependentWeights &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... | |
![]() | |
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. | |
Implementation of CoordUniformState for order-dependent weights.
This formulation is as proposed in [4] . Define
\[ \boldsymbol p_{s,\ell} = \left( \sum_{\substack{\mathfrak u \subseteq \{1, \dots, s\} \\ |\mathfrak u| = \ell}} \prod_{j \in \mathfrak u} \omega(x_{0,j}), \dots, \sum_{\substack{\mathfrak u \subseteq \{1, \dots, s\} \\ |\mathfrak u| = \ell}} \prod_{j \in \mathfrak u} \omega(x_{n-1,j}) \right), \]
for \(s \geq 1\) and \(1 \leq \ell \leq s\), with \(\boldsymbol p_{0,\ell} = \boldsymbol 1\) and \(\boldsymbol p_{s,s+1} = \boldsymbol 0\). Then,
\[ \mathcal D_s^2 = \mathcal D_{s-1}^2 + \frac1n \boldsymbol\omega_s \cdot \sum_{\ell=1}^s \Gamma_\ell \boldsymbol p_{s-1,\ell-1} \]
and
\[ \boldsymbol p_{s,\ell} = \boldsymbol p_{s-1,\ell} + \boldsymbol\omega_s \odot \boldsymbol p_{s-1,\ell-1}. \]
|
inline |
Constructor.
Sets \(\mathcal D_0^2 = 0\) and \(\boldsymbol p_{0,\ell} = \boldsymbol 1\).
storage | Storage configuration. |
weights | Order-dependent weights \( \Gamma_\ell \). |
References LatBuilder::MeritSeq::ConcreteCoordUniformState< LAT, COMPRESS, WEIGHTS >::reset().
|
inlinevirtual |
Returns a copy of this instance.
Implements LatBuilder::MeritSeq::CoordUniformState< LAT, COMPRESS >.
References LatBuilder::MeritSeq::ConcreteCoordUniformState< LAT, COMPRESS, WEIGHTS >::ConcreteCoordUniformState().
|
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,\ell} = \boldsymbol p_{s-1,\ell} + \boldsymbol\omega_s \odot \boldsymbol p_{s-1,\ell-1}. \]
Reimplemented from LatBuilder::MeritSeq::CoordUniformState< LAT, COMPRESS >.
|
virtual |
Computes and returns the weighted state vector \(\boldsymbol q_s\).
Computes
\[ \boldsymbol q_s = \sum_{\ell=0}^s \Gamma_{\ell+1} \boldsymbol p_{s,\ell}. \]
Implements LatBuilder::MeritSeq::CoordUniformState< LAT, COMPRESS >.