CNORXZ
Container with Native Operation Routines and Expressions
Loading...
Searching...
No Matches
Public Member Functions | List of all members
CNORXZ::SPack< Indices > Class Template Reference

#include <index_pack.h>

Public Member Functions

 SP_DEFAULT_MEMBERS (constexpr, SPack)
 
constexpr SPack (const Sptr< Indices > &... is)
 
constexpr SPack (const Tuple< Sptr< Indices >... > &is)
 
constexpr const Tuple< Sptr< Indices >... > & all () const
 
constexpr SizeT size () const
 
template<SizeT I>
constexpr decltype(autoget (CSizeT< I > i) const
 
template<SizeT I>
constexpr decltype(autooperator[] (CSizeT< I > i) const
 
template<class Index >
constexpr decltype(autormul (const Sptr< Index > &i) const
 
template<class Index >
constexpr decltype(autolmul (const Sptr< Index > &i) const
 
template<class... Indices2>
constexpr decltype(automul (const SPack< Indices2... > &p) const
 
decltype(automkRange () const
 
SizeT lex () const
 
SizeT pos () const
 
template<SizeT I>
constexpr decltype(autoget (CSizeT< I > i) const
 
template<SizeT I>
constexpr decltype(autooperator[] (CSizeT< I > i) const
 
template<class Index >
constexpr decltype(autormul (const Sptr< Index > &i) const
 
template<class Index >
constexpr decltype(autolmul (const Sptr< Index > &i) const
 
template<class... Indices2>
constexpr decltype(automul (const SPack< Indices2... > &p) const
 

Detailed Description

template<class... Indices>
class CNORXZ::SPack< Indices >

Static index pack. Containes tuple of shared pointers to index instances.

Template Parameters
IndicesIndex types.

Definition at line 32 of file index_pack.h.

Constructor & Destructor Documentation

◆ SPack() [1/2]

template<class... Indices>
constexpr CNORXZ::SPack< Indices >::SPack ( const Sptr< Indices > &... is)
constexpr

Construct from index pointers

Parameters
isindex pointers

Definition at line 24 of file index_pack.cc.h.

◆ SPack() [2/2]

template<class... Indices>
constexpr CNORXZ::SPack< Indices >::SPack ( const Tuple< Sptr< Indices >... > & is)
constexpr

Construct from index pointer tuple

Parameters
isindex pointer tuple

Definition at line 29 of file index_pack.cc.h.

Member Function Documentation

◆ all()

template<class... Indices>
constexpr const Tuple< Sptr< Indices >... > & CNORXZ::SPack< Indices >::all ( ) const
constexpr

get underlying index pointer tuple

Returns
underlying index pointer tuple

Definition at line 34 of file index_pack.cc.h.

◆ get() [1/2]

template<class... Indices>
template<SizeT I>
constexpr decltype(auto) CNORXZ::SPack< Indices >::get ( CSizeT< I > i) const
constexpr

Definition at line 41 of file index_pack.cc.h.

◆ get() [2/2]

template<class... Indices>
template<SizeT I>
constexpr decltype(auto) CNORXZ::SPack< Indices >::get ( CSizeT< I > i) const
constexpr

get pack element

Returns
i'th element of the pack
Template Parameters
Istatic position
Parameters
istatic position instance

◆ lex()

template<class... Indices>
SizeT CNORXZ::SPack< Indices >::lex ( ) const

Get lexicographic position if pack was transformed to a (trivial) multi-index.

Returns
lexicographic position

Definition at line 82 of file index_pack.cc.h.

◆ lmul() [1/2]

template<class... Indices>
template<class Index >
constexpr decltype(auto) CNORXZ::SPack< Indices >::lmul ( const Sptr< Index > & i) const
constexpr

Definition at line 62 of file index_pack.cc.h.

◆ lmul() [2/2]

template<class... Indices>
template<class Index >
constexpr decltype(auto) CNORXZ::SPack< Indices >::lmul ( const Sptr< Index > & i) const
constexpr

Append index on the l.h.s. of the pack.

Template Parameters
IndexType of the index to be appended
Parameters
iIndex to be appended

◆ mkRange()

template<class... Indices>
decltype(auto) CNORXZ::SPack< Indices >::mkRange ( ) const

create a range from the index pack

Returns
created range

Definition at line 75 of file index_pack.cc.h.

◆ mul() [1/2]

template<class... Indices>
template<class... Indices2>
constexpr decltype(auto) CNORXZ::SPack< Indices >::mul ( const SPack< Indices2... > & p) const
constexpr

Definition at line 69 of file index_pack.cc.h.

◆ mul() [2/2]

template<class... Indices>
template<class... Indices2>
constexpr decltype(auto) CNORXZ::SPack< Indices >::mul ( const SPack< Indices2... > & p) const
constexpr

Append another index pack on the r.h.s. of this pack

Template Parameters
Indices2Types of the indices in the pack to be appended
Parameters
pIndex pack to be appended

◆ operator[]() [1/2]

template<class... Indices>
template<SizeT I>
constexpr decltype(auto) CNORXZ::SPack< Indices >::operator[] ( CSizeT< I > i) const
constexpr

Definition at line 48 of file index_pack.cc.h.

◆ operator[]() [2/2]

template<class... Indices>
template<SizeT I>
constexpr decltype(auto) CNORXZ::SPack< Indices >::operator[] ( CSizeT< I > i) const
constexpr

get pack element

Returns
i'th element of the pack
Template Parameters
Istatic position
Parameters
istatic position instance

◆ pos()

template<class... Indices>
SizeT CNORXZ::SPack< Indices >::pos ( ) const

Get lexicographic position if pack was transformed to a (trivial) multi-index.

Returns
lexicographic position

Definition at line 93 of file index_pack.cc.h.

◆ rmul() [1/2]

template<class... Indices>
template<class Index >
constexpr decltype(auto) CNORXZ::SPack< Indices >::rmul ( const Sptr< Index > & i) const
constexpr

Definition at line 55 of file index_pack.cc.h.

◆ rmul() [2/2]

template<class... Indices>
template<class Index >
constexpr decltype(auto) CNORXZ::SPack< Indices >::rmul ( const Sptr< Index > & i) const
constexpr

Append index on the r.h.s. of the pack.

Template Parameters
IndexType of the index to be appended
Parameters
iindex to be appended

◆ size()

template<class... Indices>
constexpr SizeT CNORXZ::SPack< Indices >::size ( ) const
constexpr

get pack size i.e. dimension (non-recursive)

Returns
pack size

◆ SP_DEFAULT_MEMBERS()

template<class... Indices>
CNORXZ::SPack< Indices >::SP_DEFAULT_MEMBERS ( constexpr ,
SPack< Indices >  )

default constructors and assignments


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