FiberVISH 0.2
Fish - The Fiber Bundle API for the Vish Visualization Shell
Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Friends | List of all members

Stop multidimensional indexing recursion. More...

#include <MultiIndex.hpp>

Public Member Functions

constexpr MultiIndex () noexcept
 Default constructor.
 
constexpr MultiIndex (const Index &I) noexcept
 Initialize highest index.
 
constexpr MultiIndex (const MultiIndex &Midx, const Index &I) noexcept
 Multidimensional index as product of subdimension and index.
 
constexpr MultiIndex (const Index &lin_idx, const MultiIndex &Dimens, const CreateFromLinear &)
 Multidimensional Index - a linear Index with Dimensions.
 
MultiIndexIterator< 1 > begin () const
 Begin a ranged loop.
 
MultiIndexIterator< 1 > end () const
 End a ranged loop.
 
constexpr int getSignedOrientation (const MultiIndex &B) const
 
constexpr const Indexoperator[] (int) const noexcept
 
constexpr Indexoperator[] (int) noexcept
 
constexpr const Indexmaxidx () const noexcept
 
constexpr Indexmaxidx () noexcept
 
constexpr Index size () const noexcept
 
constexpr MultiIndexoperator+= (const MultiIndex &D) noexcept
 
constexpr MultiIndexoperator-= (const MultiIndex &D) noexcept
 
constexpr MultiIndex operator+ (const MultiIndex &D) noexcept
 
bool operator== (const MultiIndex &D) const noexcept
 
bool operator!= (const MultiIndex &D) const noexcept
 inequality comparision operator
 
bool inc (const MultiIndex &Dimens, const MultiIndex &Increment) noexcept
 
bool inc (const MultiIndex &Dimens) noexcept
 
Index linear (const MultiIndex &) const
 
bool isWithin (const MultiIndex &Range) const noexcept
 

Static Public Member Functions

static int log2 (index_t N) noexcept
 
template<class Functor , Dims_t SuperDims>
static bool ForEachRecursion (Functor &F, const MultiIndex< SuperDims > &SuperIndex, const MultiIndex &Start, const MultiIndex &End, const MultiIndex &Increment)
 

Protected Types

typedef index_t Index
 
typedef Index value_type
 

Protected Member Functions

constexpr MultiIndex (const MultiIndex &M, const MultiIndex &D, const Add &) noexcept
 
constexpr MultiIndex (const MultiIndex &M, const MultiIndex &D, const Sub &) noexcept
 
constexpr MultiIndex (const MultiIndex &M, const MultiIndex &D, const Mult &) noexcept
 
constexpr MultiIndex (const MultiIndex &M, const MultiIndex &D, const Div &) noexcept
 
constexpr MultiIndex (unsigned int bits, const ::Eagle::BinaryAnd &) noexcept
 
constexpr MultiIndex (const MultiIndex &M, const MultiIndex &D, const ::Eagle::BinaryAnd &) noexcept
 
constexpr MultiIndex (const MultiIndex &M, const Power2Alignment &) noexcept
 
constexpr MultiIndex (const std::array< index_t, 1 > &A)
 

Friends

constexpr MultiIndex clamp (const MultiIndex &M, const MultiIndex &D) noexcept
 
constexpr MultiIndex clamp_m1 (const MultiIndex &M, const MultiIndex &D) noexcept
 

Detailed Description

Stop multidimensional indexing recursion.

Constructor & Destructor Documentation

◆ MultiIndex()

constexpr Fiber::MultiIndex< 1 >::MultiIndex ( const Index lin_idx,
const MultiIndex< 1 > &  Dimens,
const CreateFromLinear  
)
inlineconstexpr

Multidimensional Index - a linear Index with Dimensions.

It is ensured that the resulting index resides in the range of the dimensions.