Lattice Builder Manual
Software Package for Constructing Rank-1 Lattices
|
Implementation of CoordUniformState for projection-dependent weights. More...
#include <ConcreteCoordUniformState-PD.h>
Inherits LatBuilder::MeritSeq::CoordUniformState< LAT, COMPRESS >.
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. | |
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\).
|
inline |
Constructor.
Sets \(\mathcal D_0^2 = 0\) and \(\boldsymbol p_{\emptyset} = \boldsymbol 1\).
storage | Storage configuration. |
weights | Projection-dependent weights \( \gamma_{\mathfrak u} \). |
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_{\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 >.
|
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}. \]
Implements LatBuilder::MeritSeq::CoordUniformState< LAT, COMPRESS >.