LatNet Builder Manual  2.0.1-11
Software Package for Constructing Highly Uniform Point Sets
LatBuilder::Storage< LR, EmbeddingType::MULTILEVEL, COMPRESS, PLO > Class Template Reference

Vector permutation for embedded lattices. More...

#include <Storage-EMBEDDED.h>

Inherits LatBuilder::BasicStorage< Storage< LR, EmbeddingType::MULTILEVEL, COMPRESS, PLO > >.

Classes

class  LevelRanges
 Sequence of ranges of indices corresponding to embedded levels. More...
 

Public Types

typedef self_type::size_type size_type
 
typedef self_type::Compress Compress
 
typedef self_type::MeritValue MeritValue
 
typedef self_type::SizeParam SizeParam
 
- Public Types inherited from LatBuilder::BasicStorage< Storage< LR, EmbeddingType::MULTILEVEL, COMPRESS, PLO > >
typedef StorageTraits< Storage< LR, EmbeddingType::MULTILEVEL, COMPRESS, PLO > >::size_type size_type
 
typedef StorageTraits< Storage< LR, EmbeddingType::MULTILEVEL, COMPRESS, PLO > >::value_type value_type
 
typedef StorageTraits< Storage< LR, EmbeddingType::MULTILEVEL, COMPRESS, PLO > >::MeritValue MeritValue
 
typedef StorageTraits< Storage< LR, EmbeddingType::MULTILEVEL, COMPRESS, PLO > >::SizeParam SizeParam
 
typedef StorageTraits< Storage< LR, EmbeddingType::MULTILEVEL, COMPRESS, PLO > >::Unpermute Unpermute
 
typedef StorageTraits< Storage< LR, EmbeddingType::MULTILEVEL, COMPRESS, PLO > >::Stride Stride
 

Public Member Functions

 Storage (const Storage &other)
 
 Storage (SizeParam sizeParam)
 
size_type virtualSize () const
 
MeritValue createMeritValue (Real value) const
 
const GroupType & indices () const
 
const GroupType & indices (Level i) const
 
const GenGroupType & generators () const
 
LevelRanges levelRanges () const
 Creates and returns a new instance of LevelRanges.
 
- Public Member Functions inherited from LatBuilder::BasicStorage< Storage< LR, EmbeddingType::MULTILEVEL, COMPRESS, PLO > >
 BasicStorage (SizeParam sizeParam)
 
size_type virtualSize () const
 
size_type size () const
 
const SizeParam & sizeParam () const
 
bool symmetric () const
 
bool operator== (const BasicStorage &other) const
 
bool operator!= (const BasicStorage &other) const
 
MeritValue createMeritValue (Real value) const
 
boost::numeric::ublas::vector_indirect< V, IndexMap< Unpermute > > unpermuted (boost::numeric::ublas::vector_container< V > &vec) const
 Returns a vector proxy to access the vector's elements in their natural order.
 
boost::numeric::ublas::vector_indirect< const V, IndexMap< Stride > > strided (const boost::numeric::ublas::vector_container< V > &vec, value_type stride) const
 Returns a vector proxy to access the vector's elements with a periodic jump of stride across the elements.
 

Static Public Member Functions

static std::string shortname ()
 
- Static Public Member Functions inherited from LatBuilder::BasicStorage< Storage< LR, EmbeddingType::MULTILEVEL, COMPRESS, PLO > >
static std::string name ()
 

Additional Inherited Members

- Protected Types inherited from LatBuilder::BasicStorage< Storage< LR, EmbeddingType::MULTILEVEL, COMPRESS, PLO > >
typedef StorageTraits< Storage< LR, EmbeddingType::MULTILEVEL, COMPRESS, PLO > >::Compress Compress
 
- Protected Member Functions inherited from LatBuilder::BasicStorage< Storage< LR, EmbeddingType::MULTILEVEL, COMPRESS, PLO > >
 BasicStorage (const BasicStorage &)=default
 

Detailed Description

template<LatticeType LR, Compress COMPRESS, PerLevelOrder PLO>
class LatBuilder::Storage< LR, EmbeddingType::MULTILEVEL, COMPRESS, PLO >

Vector permutation for embedded lattices.

The vector embedded at level \(m\) in base \(b\) consists of the first \(b^m\) ( \(2^{m\deg(b)}\) for polynomial lattices) components of the internal representation of the vector (the lower the level, the deeper the embedding).

The indices are ordered by level. Thus, refining a logical vector by adding a new level op components can be achieved by appending elements at the end of the physical vector. Within each block, a permutation is given by the template parameter PerLevelOrder is applied:

  • PerLevelOrder::CYCLIC corresponds to inverse cyclic subgroup corresponding to that block.
  • PerLevelOrder::BASIC corresponds to the "natural order". more details in Storage.
Template Parameters
COMPRESSCompression type (either None or Symmetric). If Compress::SYMMETRIC, the permuted indices are compressed by assuming that the vector components at unpermuted indices \(i\) and \(b^M - i\) have the same value, for all \(i = 0, \dots, b^M - 1\), where \(M\) is the maximum level of embedding.

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