Lattice Builder Manual
Software Package for Constructing Rank-1 Lattices
LatBuilder::MeritSeq::CBC< LAT, COMPRESS, PROJDEP, ACC > Class Template Reference

Sequence of lattice merit for CBC construction. More...

#include <CBC.h>

Classes

class  Seq
 Output sequence of merit values. More...
 

Public Types

typedef WeightedFigureOfMerit< PROJDEP, ACC > FigureOfMerit
 
typedef Storage< LAT, COMPRESS >::MeritValue MeritValue
 
typedef LatBuilder::LatDef< LAT > LatDef
 
typedef MeritValue value_type
 
typedef LatCommon::CoordinateSets::AddCoordinate< LatCommon::CoordinateSets::FromRangesProjections
 

Public Member Functions

 CBC (Storage< LAT, COMPRESS > storage, const FigureOfMerit &figure)
 Constructor. More...
 
void reset ()
 Resets the state of the CBC algorithm to dimension 0.
 
const Storage< LAT, COMPRESS > & storage () const
 Returns the storage configuration instance.
 
const FigureOfMeritfigureOfMerit () const
 Returns the figure of merit.
 
const Evaluator & evaluator () const
 Returns the figure of merit evaluator.
 
const LatDefbaseLat () const
 Returns the base lattice. More...
 
const MeritValue & baseMerit () const
 Returns the base merit value. More...
 
Projections projections () const
 Returns a sequence of coordinate sets corresponding to the all projections that comprise the next coordinate to be appended.
 
template<typename GENSEQ >
Seq< GENSEQ > meritSeq (GENSEQ genSeq) const
 Creates a new sequence of merit values by appending the values in genSeq to the generating vector of the base lattice. More...
 
template<typename IT >
void select (const IT &it)
 Selects the element pointed to by the iterator. More...
 

Public Attributes

decltype(std::declval< FigureOfMerit >().evaluator(std::declval< Storage< LAT, COMPRESS >>())) typedef Evaluator
 

Detailed Description

template<LatType LAT, Compress COMPRESS, class PROJDEP, template< typename > class ACC>
class LatBuilder::MeritSeq::CBC< LAT, COMPRESS, PROJDEP, ACC >

Sequence of lattice merit for CBC construction.

This class is intended to be used with the following steps:

  1. Instantiate. At that point, the dimension is zero.
  2. Iterate over the sequence of merit values and lattices for the next dimension with CBC::Seq::begin() and CBC::Seq::end().
  3. Select an element from the sequence with select(). This increases the current dimension by one.
  4. Repeat from step 2 until desired dimension is reached.

Constructor & Destructor Documentation

template<LatType LAT, Compress COMPRESS, class PROJDEP, template< typename > class ACC>
LatBuilder::MeritSeq::CBC< LAT, COMPRESS, PROJDEP, ACC >::CBC ( Storage< LAT, COMPRESS >  storage,
const FigureOfMerit figure 
)
inline

Constructor.

Parameters
storageStorage configuration.
figureFigure of merit instance to be used.

Member Function Documentation

template<LatType LAT, Compress COMPRESS, class PROJDEP, template< typename > class ACC>
const LatDef& LatBuilder::MeritSeq::CBC< LAT, COMPRESS, PROJDEP, ACC >::baseLat ( ) const
inline
template<LatType LAT, Compress COMPRESS, class PROJDEP, template< typename > class ACC>
const MeritValue& LatBuilder::MeritSeq::CBC< LAT, COMPRESS, PROJDEP, ACC >::baseMerit ( ) const
inline

Returns the base merit value.

The merit values contained in this sequence are based on the value returned by this function.

See also
baseLat()

Referenced by LatBuilder::MeritSeq::LatSeqOverCBC< CBC >::Seq< LATSEQ >::element(), and LatBuilder::MeritSeq::CBC< LAT, COMPRESS, PROJDEP, ACC >::Seq< GENSEQ >::element().

template<LatType LAT, Compress COMPRESS, class PROJDEP, template< typename > class ACC>
template<typename GENSEQ >
Seq<GENSEQ> LatBuilder::MeritSeq::CBC< LAT, COMPRESS, PROJDEP, ACC >::meritSeq ( GENSEQ  genSeq) const
inline

Creates a new sequence of merit values by appending the values in genSeq to the generating vector of the base lattice.

Parameters
genSeqSequence of generator values.

References LatBuilder::MeritSeq::CBC< LAT, COMPRESS, PROJDEP, ACC >::baseLat(), and LatBuilder::LatSeq::cbc().

Referenced by LatBuilder::MeritSeq::LatSeqOverCBC< CBC >::Seq< LATSEQ >::element().

template<LatType LAT, Compress COMPRESS, class PROJDEP, template< typename > class ACC>
template<typename IT >
void LatBuilder::MeritSeq::CBC< LAT, COMPRESS, PROJDEP, ACC >::select ( const IT &  it)
inline

Selects the element pointed to by the iterator.

Returns true if and only if the sequence of generator sequences is not exhausted.

Parameters
itIterator on the element of the sequence to be selected.

Referenced by LatBuilder::MeritSeq::LatSeqOverCBC< CBC >::Seq< LATSEQ >::element().


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