Lattice Builder Manual Software Package for Constructing Rank-1 Lattices
LatBuilder::StorageTraits< Storage< LatType::EMBEDDED, COMPRESS > >::Stride Class Reference

Stride permutation. More...

#include <Storage-EMBEDDED.h>

## Public Types

typedef StorageTraits::size_type size_type

## Public Member Functions

Stride (Storage< LatType::EMBEDDED, COMPRESS > storage, size_type stride)

size_type operator() (size_type i) const

size_type size () const

## Detailed Description

### template<Compress COMPRESS> class LatBuilder::StorageTraits< Storage< LatType::EMBEDDED, COMPRESS > >::Stride

Stride permutation.

The elements on each level are visited by jumping across a certain number of elements (the stride length) periodically.

Consider the unpermuted vector $$\boldsymbol v = (v_1, \dots, v_n)$$ for some positive integer $$n$$. The $$j$$-th component of the vector with stride length $$a$$ has value $$v_{j a \bmod n}$$.

The stride length $$a$$ can be identified to the $$i$$-th element $$g_i$$ of the cyclic group $$\{ g_1, \dots, g_p \}$$ integers modulo $$n$$, with $$g_1 = 1$$.

In the multilevel case, we can define a series of per-level vectors that regroup the elements of vector $$\boldsymbol v$$ corresponding to distinct levels.

Each per-level vector can be seen a distinct row of an horizontal matrix composed of (square) circulant blocks. A $$n \times n$$ circulant matrix $$\boldsymbol C$$ with elements $$C_{i,j}$$ is completely defined in terms of its first column $$\boldsymbol c = (c_1,\dots,c_s)$$, as $$C_{i,j} = c_{(i - j) \bmod n + 1}$$.

The documentation for this class was generated from the following file:
• latbuilder/include/latbuilder/Storage-EMBEDDED.h