Lattice Builder Manual Software Package for Constructing Rank-1 Lattices

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files
- Examples

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends Modules Pages
Public Member Functions | List of all members
LatBuilder::MeritSeq::ConcreteCoordUniformState< LAT, COMPRESS, WEIGHTS > Class Template Reference

Default implementation of CoordUniformState that works with any implementation of LatCommon::Weights. More...

`#include <ConcreteCoordUniformState.h>`

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

## Public Member Functions
| ConcreteCoordUniformState (Storage< LAT, COMPRESS > storage, const WEIGHTS &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.
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 WEIGHTS>
class LatBuilder::MeritSeq::ConcreteCoordUniformState< LAT, COMPRESS, WEIGHTS >

Default implementation of CoordUniformState that works with any implementation of LatCommon::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\).

## Constructor & Destructor Documentation

template<LatType LAT, Compress COMPRESS, class WEIGHTS >

LatBuilder::MeritSeq::ConcreteCoordUniformState< LAT, COMPRESS, WEIGHTS >::ConcreteCoordUniformState | ( | Storage< LAT, COMPRESS > | storage,
|  | const WEIGHTS & | weights
| ) |  |
| inline

Constructor.

Sets \(\mathcal D_0^2 = 0\) and \(\boldsymbol p_{\emptyset} = \boldsymbol 1\).

Parameters

  storage | Storage configuration.
  weights | Product weights \( \gamma_{\mathfrak u} \).

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

Referenced by LatBuilder::MeritSeq::ConcreteCoordUniformState< LAT, COMPRESS, LatCommon::PODWeights >::clone(), LatBuilder::MeritSeq::ConcreteCoordUniformState< LAT, COMPRESS, LatCommon::ProductWeights >::clone(), LatBuilder::MeritSeq::ConcreteCoordUniformState< LAT, COMPRESS, LatCommon::OrderDependentWeights >::clone(), LatBuilder::MeritSeq::ConcreteCoordUniformState< LAT, COMPRESS, LatCommon::ProjectionDependentWeights >::clone(), and LatBuilder::MeritSeq::ConcreteCoordUniformState< LAT, COMPRESS, WEIGHTS >::clone().

## Member Function Documentation

template<LatType LAT, Compress COMPRESS, class WEIGHTS >

void LatBuilder::MeritSeq::ConcreteCoordUniformState< LAT, COMPRESS, WEIGHTS >::update | ( | const RealVector & | kernelValues,
|  | Modulus | gen
| ) |  |
| inline 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 >.

References LatBuilder::MeritSeq::CoordUniformState< LAT, COMPRESS >::dimension(), LatBuilder::MeritSeq::CoordUniformState< LAT, COMPRESS >::storage(), and LatBuilder::MeritSeq::CoordUniformState< LAT, COMPRESS >::update().

template<LatType LAT, Compress COMPRESS, class WEIGHTS >

RealVector LatBuilder::MeritSeq::ConcreteCoordUniformState< LAT, COMPRESS, WEIGHTS >::weightedState | ( |  | ) | const
| inline 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 >.

References LatBuilder::MeritSeq::CoordUniformState< LAT, COMPRESS >::dimension(), and LatBuilder::MeritSeq::CoordUniformState< LAT, COMPRESS >::storage().

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

- latbuilder/include/latbuilder/MeritSeq/ConcreteCoordUniformState-OD.h
- latbuilder/include/latbuilder/MeritSeq/ConcreteCoordUniformState.h