CNORXZ
Container with Native Operation Routines and Expressions
Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
CNORXZ::EIndex< MetaT, S, L > Class Template Reference

#include <eindex.h>

Inheritance diagram for CNORXZ::EIndex< MetaT, S, L >:
CNORXZ::LIndex< SIndex< MetaT, S >, L > CNORXZ::SIndex< MetaT, S > CNORXZ::IndexInterface< SIndex< MetaT, S >, MetaT >

Public Types

typedef LIndex< SIndex< MetaT, S >, L >::IB IB
 
typedef LIndex< SIndex< MetaT, S >, L >::RangeType RangeType
 
- Public Types inherited from CNORXZ::LIndex< SIndex< MetaT, S >, L >
typedef Index::IB IB
 
typedef Index::RangeType RangeType
 
- Public Types inherited from CNORXZ::SIndex< MetaT, S >
typedef IndexInterface< SIndex< MetaT, S >, MetaTIB
 
typedef SRange< MetaT, SRangeType
 
typedef MetaT MetaType
 

Public Member Functions

 DEFAULT_MEMBERS (EIndex)
 
 EIndex (const Sptr< LIndex< SIndex< MetaT, S >, L > > &i)
 
template<class Xpr , class F >
decltype(autoifor (const Xpr &xpr, F &&f) const
 
- Public Member Functions inherited from CNORXZ::LIndex< SIndex< MetaT, S >, L >
 DEFAULT_MEMBERS (LIndex)
 
 LIndex (const Sptr< SIndex< MetaT, S > > &i)
 
IndexId< L > id () const
 
decltype(auto) stepSize (const IndexId< I > &id) const
 
decltype(auto) ifor (const Xpr &xpr, F &&f) const
 
- Public Member Functions inherited from CNORXZ::SIndex< MetaT, S >
 INDEX_RANDOM_ACCESS_ITERATOR_DEFS (MetaType)
 
 DEFAULT_MEMBERS (SIndex)
 
 SIndex (const RangePtr &range, SizeT pos=0)
 
SIndexoperator= (SizeT lexpos)
 
SIndexoperator++ ()
 
SIndexoperator-- ()
 
SIndex operator+ (Int n) const
 
SIndex operator- (Int n) const
 
SizeT operator- (const SIndex &i) const
 
SIndexoperator+= (Int n)
 
SIndexoperator-= (Int n)
 
SizeT lex () const
 
SPos< Spmax () const
 
SPos< Slmax () const
 
IndexId< 0 > id () const
 
const MetaToperator* () const
 
SizeT dim () const
 
Sptr< RangeTyperange () const
 
template<SizeT I>
UPos stepSize (const IndexId< I > &id) const
 
String stringMeta () const
 
const MetaTmeta () const
 
SIndexat (const MetaT &metaPos)
 
RangePtr prange (const SIndex< MetaType, S > &last) const
 
SizeT deepFormat () const
 
SizeT deepMax () const
 
SIndexreformat (const Vector< SizeT > &f, const Vector< SizeT > &s)
 
decltype(autoxpr (const Sptr< SIndex< MetaType, S > > &_this) const
 
template<class Xpr , class F >
decltype(autoifor (const Xpr &xpr, F &&f) const
 
bool formatIsTrivial () const
 
- Public Member Functions inherited from CNORXZ::IndexInterface< SIndex< MetaT, S >, MetaT >
 ~IndexInterface ()=default
 
SIndex< MetaT, S > & THIS ()
 
const SIndex< MetaT, S > & THIS () const
 
SIndex< MetaT, S > & operator++ ()
 
SIndex< MetaT, S > & operator-- ()
 
SIndex< MetaT, S > operator+ (Int n) const
 
SIndex< MetaT, S > operator- (Int n) const
 
Int operator- (const IndexInterface &i) const
 
SIndex< MetaT, S > & operator+= (Int n)
 
SIndex< MetaT, S > & operator-= (Int n)
 
SizeT pos () const
 
SizeT lex () const
 
SizeT pmax () const
 
SizeT lmax () const
 
PtrId ptrId () const
 
decltype(auto) id () const
 
bool operator== (const IndexInterface &i) const
 
bool operator!= (const IndexInterface &i) const
 
bool operator< (const IndexInterface &i) const
 
bool operator> (const IndexInterface &i) const
 
bool operator<= (const IndexInterface &i) const
 
bool operator>= (const IndexInterface &i) const
 
decltype(auto) operator* () const
 
SizeT dim () const
 
decltype(auto) range () const
 
decltype(auto) stepSize (const IndexId< J > &id) const
 
String stringMeta () const
 
decltype(auto) meta () const
 
SIndex< MetaT, S > & at (const MetaT &meta)
 
RangePtr prange (const IndexInterface &end) const
 
decltype(auto) deepFormat () const
 
decltype(auto) deepMax () const
 
SIndex< MetaT, S > & reformat (const Vector< SizeT > &f, const Vector< SizeT > &s)
 
decltype(auto) ifor (const Xpr &xpr, F &&f) const
 
bool formatIsTrivial () const
 

Additional Inherited Members

- Protected Attributes inherited from CNORXZ::IndexInterface< SIndex< MetaT, S >, MetaT >
SizeT mPos
 

Detailed Description

template<typename MetaT, SizeT S, SizeT L>
class CNORXZ::EIndex< MetaT, S, L >

Extension Index

Elements accessed through this index in a loop are treated and processed through a single access allowing the usage of vector extensions

Template Parameters
MetaTIndex meta data type
SVector size
LStatic index label

Definition at line 34 of file eindex.h.

Member Typedef Documentation

◆ IB

template<typename MetaT , SizeT S, SizeT L>
typedef LIndex<SIndex<MetaT,S>,L>::IB CNORXZ::EIndex< MetaT, S, L >::IB

Definition at line 37 of file eindex.h.

◆ RangeType

template<typename MetaT , SizeT S, SizeT L>
typedef LIndex<SIndex<MetaT,S>,L>::RangeType CNORXZ::EIndex< MetaT, S, L >::RangeType

Definition at line 38 of file eindex.h.

Constructor & Destructor Documentation

◆ EIndex()

template<typename MetaT , SizeT S, SizeT L>
CNORXZ::EIndex< MetaT, S, L >::EIndex ( const Sptr< LIndex< SIndex< MetaT, S >, L > > & i)

Definition at line 23 of file eindex.cc.h.

Member Function Documentation

◆ DEFAULT_MEMBERS()

template<typename MetaT , SizeT S, SizeT L>
CNORXZ::EIndex< MetaT, S, L >::DEFAULT_MEMBERS ( EIndex< MetaT, S, L > )

default constructors and assignments

◆ ifor()

template<typename MetaT , SizeT S, SizeT L>
template<class Xpr , class F >
decltype(auto) CNORXZ::EIndex< MetaT, S, L >::ifor ( const Xpr & xpr,
F && f ) const

create a for-loop expression

Template Parameters
Xprloop internal expression
Faccumulating function
Parameters
xprloop internal expression
faccumulating function

Specialization for EIndex: access all elements at once, allowing usage of vector extensions

See also
EFor

Definition at line 30 of file eindex.cc.h.


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