Lattice Builder Manual
Software Package for Constructing Rank-1 Lattices
|
Vector permutation for embedded lattices. More...
#include <Storage-EMBEDDED.h>
Inherits LatBuilder::BasicStorage< Storage< LatType::EMBEDDED, COMPRESS > >.
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 |
![]() | |
typedef StorageTraits< Storage< LatType::EMBEDDED, COMPRESS > >::size_type | size_type |
typedef StorageTraits< Storage< LatType::EMBEDDED, COMPRESS > >::MeritValue | MeritValue |
typedef StorageTraits< Storage< LatType::EMBEDDED, COMPRESS > >::SizeParam | SizeParam |
typedef StorageTraits< Storage< LatType::EMBEDDED, COMPRESS > >::Unpermute | Unpermute |
typedef StorageTraits< Storage< LatType::EMBEDDED, COMPRESS > >::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. | |
![]() | |
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, size_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 std::string | name () |
Additional Inherited Members | |
![]() | |
typedef StorageTraits< Storage< LatType::EMBEDDED, COMPRESS > >::Compress | Compress |
![]() | |
BasicStorage (const BasicStorage &)=default | |
Vector permutation for embedded lattices.
The vector embedded at level \(m\) in base \(b\) consists of the first \(b^m\) 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 level, a permutation given by the inverse cyclic subgroup corresponding to that level is applied.
COMPRESS | Compression 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. |
See the output of Storage.cc for an illustration of this.