LatNet Builder Manual
2.0.1-11
Software Package for Constructing Highly Uniform Point Sets
|
Default implementation of CoordUniformState that works with any implementation of LatticeTester::Weights. More...
#include <ConcreteCoordUniformState.h>
Inherits LatBuilder::MeritSeq::CoordUniformState< LR, ET, COMPRESS, PLO >.
Public Member Functions | |
ConcreteCoordUniformState (Storage< LR, ET, COMPRESS, PLO > storage, const WEIGHTS &weights) | |
Constructor. More... | |
void | reset () |
Resets the state to dimension 0 with new specified storage configuration. | |
void | update (const RealVector &kernelValues, typename LatticeTraits< LR >::GenValue 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< LR, ET, COMPRESS, PLO > > | clone () const |
Returns a copy of this instance. | |
Public Member Functions inherited from LatBuilder::MeritSeq::CoordUniformState< LR, ET, COMPRESS, PLO > | |
CoordUniformState (Storage< LR, ET, COMPRESS, PLO > storage) | |
const Storage< LR, ET, COMPRESS, PLO > & | storage () const |
Returns a pointer to the storage configuration. | |
Dimension | dimension () const |
Returns the value of the internal dimension counter. | |
Default implementation of CoordUniformState that works with any implementation of LatticeTester::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 | Product weights \( \gamma_{\mathfrak u} \). |
References LatBuilder::MeritSeq::ConcreteCoordUniformState< LR, ET, COMPRESS, PLO, WEIGHTS >::reset().
Referenced by LatBuilder::MeritSeq::ConcreteCoordUniformState< LR, ET, COMPRESS, PLO, LatticeTester::PODWeights >::clone(), LatBuilder::MeritSeq::ConcreteCoordUniformState< LR, ET, COMPRESS, PLO, LatBuilder::Interlaced::IPODWeights< LatBuilder::Kernel::IAAlpha > >::clone(), LatBuilder::MeritSeq::ConcreteCoordUniformState< LR, ET, COMPRESS, PLO, LatticeTester::ProductWeights >::clone(), LatBuilder::MeritSeq::ConcreteCoordUniformState< LR, ET, COMPRESS, PLO, LatticeTester::OrderDependentWeights >::clone(), LatBuilder::MeritSeq::ConcreteCoordUniformState< LR, ET, COMPRESS, PLO, LatBuilder::Interlaced::IPODWeights< LatBuilder::Kernel::IB > >::clone(), LatBuilder::MeritSeq::ConcreteCoordUniformState< LR, ET, COMPRESS, PLO, LatticeTester::ProjectionDependentWeights >::clone(), and LatBuilder::MeritSeq::ConcreteCoordUniformState< LR, ET, COMPRESS, PLO, WEIGHTS >::clone().
|
inlinevirtual |
Updates the current state using the specified row of the permuted matrix
of kernel values.
For lattices, 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< LR, ET, COMPRESS, PLO >.
References LatBuilder::MeritSeq::CoordUniformState< LR, ET, COMPRESS, PLO >::dimension(), LatBuilder::MeritSeq::CoordUniformState< LR, ET, COMPRESS, PLO >::storage(), and LatBuilder::MeritSeq::CoordUniformState< LR, ET, COMPRESS, PLO >::update().
|
inlinevirtual |
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< LR, ET, COMPRESS, PLO >.
References LatBuilder::MeritSeq::CoordUniformState< LR, ET, COMPRESS, PLO >::dimension(), and LatBuilder::MeritSeq::CoordUniformState< LR, ET, COMPRESS, PLO >::storage().