Lattice Builder Manual
Software Package for Constructing Rank-1 Lattices
LatBuilder::MeritSeq::CoordUniformState< LAT, COMPRESS > Class Template Referenceabstract

Base base class for states used in the evaluation coordinate-uniform figures of merit. More...

#include <CoordUniformState.h>

Inherited by LatBuilder::MeritSeq::ConcreteCoordUniformState< LAT, COMPRESS, WEIGHTS >, LatBuilder::MeritSeq::ConcreteCoordUniformState< LAT, COMPRESS, LatCommon::OrderDependentWeights >, LatBuilder::MeritSeq::ConcreteCoordUniformState< LAT, COMPRESS, LatCommon::PODWeights >, LatBuilder::MeritSeq::ConcreteCoordUniformState< LAT, COMPRESS, LatCommon::ProductWeights >, and LatBuilder::MeritSeq::ConcreteCoordUniformState< LAT, COMPRESS, LatCommon::ProjectionDependentWeights >.

Public Member Functions

 CoordUniformState (Storage< LAT, COMPRESS > storage)
 
virtual void reset ()
 Resets the state to dimension 0 with new specified storage configuration.
 
virtual void update (const RealVector &kernelValues, Modulus gen)
 Updates the current state using the specified row of the permuted matrix of kernel values. More...
 
virtual RealVector weightedState () const =0
 Computes and returns the weighted state vector \(\boldsymbol q_s\).
 
const Storage< LAT, COMPRESS > & storage () const
 Returns a pointer to the storage configuration.
 
Dimension dimension () const
 Returns the value of the internal dimension counter.
 
virtual std::unique_ptr< CoordUniformStateclone () const =0
 Returns a copy of this instance.
 

Detailed Description

template<LatType LAT, Compress COMPRESS>
class LatBuilder::MeritSeq::CoordUniformState< LAT, COMPRESS >

Base base class for states used in the evaluation coordinate-uniform figures of merit.

The complete state is stored internally and can be updated with update(). The weighted state can be obtained with weightedState().

See also
CoordUniformEval
Note
By taking a RealVector as a parameter, calls to update() force a copy from some boost::numeric::ublas::vector_expression<E> to a new instance of RealVector. This is the cost for making update() a virtual function: it cannot be a template.

Member Function Documentation

template<LatType LAT, Compress COMPRESS>
virtual void LatBuilder::MeritSeq::CoordUniformState< LAT, COMPRESS >::update ( const RealVector kernelValues,
Modulus  gen 
)
inlinevirtual

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.

Reimplemented in LatBuilder::MeritSeq::ConcreteCoordUniformState< LAT, COMPRESS, LatCommon::ProjectionDependentWeights >, LatBuilder::MeritSeq::ConcreteCoordUniformState< LAT, COMPRESS, WEIGHTS >, LatBuilder::MeritSeq::ConcreteCoordUniformState< LAT, COMPRESS, LatCommon::OrderDependentWeights >, LatBuilder::MeritSeq::ConcreteCoordUniformState< LAT, COMPRESS, LatCommon::ProductWeights >, and LatBuilder::MeritSeq::ConcreteCoordUniformState< LAT, COMPRESS, LatCommon::PODWeights >.

Referenced by LatBuilder::MeritSeq::ConcreteCoordUniformState< LAT, COMPRESS, WEIGHTS >::update().


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