CNORXZ
Container with Native Operation Routines and Expressions
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Protected Member Functions | List of all members
CNORXZ::ArrayBase< T > Class Template Referenceabstract

#include <array_base.h>

Inheritance diagram for CNORXZ::ArrayBase< T >:
CNORXZ::CArrayBase< T > CNORXZ::MArray< ContentPtr > CNORXZ::MArray< SizeT > CNORXZ::MArray< hid_t > CNORXZ::MArray< T > CNORXZ::Slice< T >

Public Types

typedef CArrayBase< TCAB
 
typedef CAB::const_iterator const_iterator
 
typedef BIndex< Titerator
 
- Public Types inherited from CNORXZ::CArrayBase< T >
typedef AIndex< Tconst_iterator
 

Public Member Functions

 DEFAULT_MEMBERS (ArrayBase)
 
 ArrayBase (const RangePtr &range)
 
template<typename I , typename M >
Toperator[] (const IndexInterface< I, M > &i)
 
template<typename I , typename M >
Tat (const IndexInterface< I, M > &i)
 
template<class... Indices>
Toperator[] (const SPack< Indices... > &pack)
 
template<class... Indices>
Tat (const SPack< Indices... > &pack)
 
Toperator[] (const DPack &pack)
 
Tat (const DPack &pack)
 
template<class Index >
OpRoot< T, Index > operator() (const Sptr< Index > &i)
 
template<class... Indices>
decltype(autooperator() (const SPack< Indices... > &pack)
 
decltype(autooperator() (const DPack &pack)
 
template<typename I , typename M >
Sptr< ArrayBase< T > > sl (const IndexInterface< I, M > &begin, const IndexInterface< I, M > &end)
 
virtual Tdata ()=0
 
virtual iterator begin ()
 
virtual iterator end ()
 
template<typename I , typename M >
const Tat (const IndexInterface< I, M > &i) const
 
template<class... Indices>
const Tat (const SPack< Indices... > &pack) const
 
const Tat (const DPack &pack) const
 
virtual const Tdata () const=0
 
virtual const_iterator begin () const
 
virtual const_iterator end () const
 
virtual const_iterator cbegin () const=0
 
virtual const_iterator cend () const=0
 
template<typename I , typename M >
Sptr< CArrayBase< T > > sl (const IndexInterface< I, M > &begin, const IndexInterface< I, M > &end) const
 
- Public Member Functions inherited from CNORXZ::CArrayBase< T >
 DEFAULT_MEMBERS (CArrayBase)
 
 CArrayBase (const RangePtr &range)
 
virtual ~CArrayBase ()=default
 
template<typename I , typename M >
const Toperator[] (const IndexInterface< I, M > &i) const
 
template<typename I , typename M >
const Tat (const IndexInterface< I, M > &i) const
 
template<class... Indices>
const Toperator[] (const SPack< Indices... > &pack) const
 
template<class... Indices>
const Tat (const SPack< Indices... > &pack) const
 
const Toperator[] (const DPack &pack) const
 
const Tat (const DPack &pack) const
 
template<typename I , typename M >
Sptr< CArrayBase< T > > sl (const IndexInterface< I, M > &begin, const IndexInterface< I, M > &end) const
 
template<class Index >
COpRoot< T, Index > operator() (const Sptr< Index > &i) const
 
template<class... Indices>
decltype(autooperator() (const SPack< Indices... > &pack) const
 
decltype(autooperator() (const DPack &pack) const
 
virtual SizeT size () const
 
virtual RangePtr range () const
 
virtual bool isView () const =0
 

Protected Member Functions

template<class Acc >
iterator itLex (const Acc &acc)
 
template<class Acc >
iterator itLexSave (const Acc &acc)
 
- Protected Member Functions inherited from CNORXZ::CArrayBase< T >
template<class Acc >
const_iterator itLex (const Acc &acc) const
 
template<class Acc >
const_iterator itLexSave (const Acc &acc) const
 
template<class Acc >
void checkFormatCompatibility (const Acc &acc) const
 
virtual bool formatIsTrivial () const =0
 

Additional Inherited Members

- Protected Attributes inherited from CNORXZ::CArrayBase< T >
RangePtr mRange
 

Detailed Description

template<typename T>
class CNORXZ::ArrayBase< T >

Abstract container base class read and write access to the data

Template Parameters
Tdata type

Definition at line 189 of file array_base.h.

Member Typedef Documentation

◆ CAB

Definition at line 192 of file array_base.h.

◆ const_iterator

template<typename T >
typedef CAB::const_iterator CNORXZ::ArrayBase< T >::const_iterator

constant iterator type

Definition at line 193 of file array_base.h.

◆ iterator

template<typename T >
typedef BIndex<T> CNORXZ::ArrayBase< T >::iterator

read/write iterator type

Definition at line 194 of file array_base.h.

Constructor & Destructor Documentation

◆ ArrayBase()

template<typename T >
CNORXZ::ArrayBase< T >::ArrayBase ( const RangePtr & range)

construct a container on a range

Definition at line 229 of file array_base.cc.h.

Member Function Documentation

◆ at() [1/6]

template<typename T >
T & CNORXZ::ArrayBase< T >::at ( const DPack & pack)

const data element access performs compatibility checks

Template Parameters
Iindex type
Mmeta data type
Parameters
iindex

Definition at line 283 of file array_base.cc.h.

◆ at() [2/6]

template<typename T >
const T & CNORXZ::CArrayBase< T >::at ( const DPack & pack) const

const data element access performs compatibility checks

Parameters
iindex pack

Definition at line 91 of file array_base.cc.h.

◆ at() [3/6]

template<typename T >
template<typename I , typename M >
T & CNORXZ::ArrayBase< T >::at ( const IndexInterface< I, M > & i)

const data element access performs compatibility checks

Template Parameters
Iindex type
Mmeta data type
Parameters
iindex

Definition at line 248 of file array_base.cc.h.

◆ at() [4/6]

template<typename T >
template<typename I , typename M >
const T & CNORXZ::CArrayBase< T >::at ( const IndexInterface< I, M > & i) const

const data element access performs compatibility checks

Template Parameters
Iindex type
Mmeta data type
Parameters
iindex

Definition at line 63 of file array_base.cc.h.

◆ at() [5/6]

template<typename T >
template<class... Indices>
T & CNORXZ::ArrayBase< T >::at ( const SPack< Indices... > & pack)

const data element access performs compatibility checks

Template Parameters
Iindex type
Mmeta data type
Parameters
iindex

Definition at line 269 of file array_base.cc.h.

◆ at() [6/6]

template<typename T >
template<class... Indices>
const T & CNORXZ::CArrayBase< T >::at ( const SPack< Indices... > & pack) const

const data element access performs compatibility checks

Template Parameters
Iindex type
Mmeta data type
Parameters
istatic index pack

Definition at line 80 of file array_base.cc.h.

◆ begin() [1/2]

template<typename T >
ArrayBase< T >::iterator CNORXZ::ArrayBase< T >::begin ( )
virtual

get index pointing to first position read/write access

Definition at line 300 of file array_base.cc.h.

◆ begin() [2/2]

template<typename T >
CArrayBase< T >::const_iterator CNORXZ::CArrayBase< T >::begin ( ) const
virtual

get index pointing to first position

Reimplemented from CNORXZ::CArrayBase< T >.

Definition at line 132 of file array_base.cc.h.

◆ cbegin()

template<typename T >
virtual const_iterator CNORXZ::CArrayBase< T >::cbegin ( ) const
virtual

◆ cend()

template<typename T >
virtual const_iterator CNORXZ::CArrayBase< T >::cend ( ) const
virtual

get index pointing to position after last position

Implements CNORXZ::CArrayBase< T >.

Reimplemented in CNORXZ::MArray< T >, CNORXZ::MArray< ContentPtr >, CNORXZ::MArray< hid_t >, CNORXZ::MArray< SizeT >, and CNORXZ::Slice< T >.

◆ data() [1/2]

template<typename T >
virtual const T * CNORXZ::CArrayBase< T >::data ( ) const
virtual

◆ data() [2/2]

template<typename T >
virtual T * CNORXZ::ArrayBase< T >::data ( )
pure virtual

get pointer to container data read/write access

Implemented in CNORXZ::MArray< T >, CNORXZ::MArray< ContentPtr >, CNORXZ::MArray< hid_t >, CNORXZ::MArray< SizeT >, and CNORXZ::Slice< T >.

◆ DEFAULT_MEMBERS()

template<typename T >
CNORXZ::ArrayBase< T >::DEFAULT_MEMBERS ( ArrayBase< T > )

default constructors and assignments

◆ end() [1/2]

template<typename T >
ArrayBase< T >::iterator CNORXZ::ArrayBase< T >::end ( )
virtual

get index pointing to position after last position read/write access

Definition at line 306 of file array_base.cc.h.

◆ end() [2/2]

template<typename T >
CArrayBase< T >::const_iterator CNORXZ::CArrayBase< T >::end ( ) const
virtual

get index pointing to position after last position

Reimplemented from CNORXZ::CArrayBase< T >.

Definition at line 135 of file array_base.cc.h.

◆ itLex()

template<typename T >
template<class Acc >
ArrayBase< T >::iterator CNORXZ::ArrayBase< T >::itLex ( const Acc & acc)
protected

Get valid data index. Create well-formated index from index pack (unformatted) or index using trivial format.

Template Parameters
Accindex type or index pack type
Parameters
accindex or index pack

Definition at line 366 of file array_base.cc.h.

◆ itLexSave()

template<typename T >
template<class Acc >
ArrayBase< T >::iterator CNORXZ::ArrayBase< T >::itLexSave ( const Acc & acc)
protected

Get valid data index. Create well-formated index from index pack (unformatted) or index using trivial format. Perform compatibility checks.

Template Parameters
Accindex type or index pack type
Parameters
accindex or index pack

Definition at line 373 of file array_base.cc.h.

◆ operator()() [1/3]

template<typename T >
decltype(auto) CNORXZ::ArrayBase< T >::operator() ( const DPack & pack)
inline

create operation on this container

Template Parameters
Indextype of operation index
Parameters
ioperation index

Definition at line 355 of file array_base.cc.h.

◆ operator()() [2/3]

template<typename T >
template<class... Indices>
decltype(auto) CNORXZ::ArrayBase< T >::operator() ( const SPack< Indices... > & pack)
inline

create operation on this container

Template Parameters
Indextype of operation index
Parameters
ioperation index

Definition at line 349 of file array_base.cc.h.

◆ operator()() [3/3]

template<typename T >
template<class Index >
OpRoot< T, Index > CNORXZ::ArrayBase< T >::operator() ( const Sptr< Index > & i)

create operation on this container

Template Parameters
Indextype of operation index
Parameters
ioperation index

Definition at line 313 of file array_base.cc.h.

◆ operator[]() [1/3]

template<typename T >
T & CNORXZ::ArrayBase< T >::operator[] ( const DPack & pack)

const data element access

Template Parameters
Iindex type
Mmeta data type
Parameters
iindex

Definition at line 276 of file array_base.cc.h.

◆ operator[]() [2/3]

template<typename T >
template<typename I , typename M >
T & CNORXZ::ArrayBase< T >::operator[] ( const IndexInterface< I, M > & i)

const data element access

Template Parameters
Iindex type
Mmeta data type
Parameters
iindex

Definition at line 235 of file array_base.cc.h.

◆ operator[]() [3/3]

template<typename T >
template<class... Indices>
T & CNORXZ::ArrayBase< T >::operator[] ( const SPack< Indices... > & pack)

const data element access

Template Parameters
Iindex type
Mmeta data type
Parameters
iindex

Definition at line 256 of file array_base.cc.h.

◆ sl() [1/2]

template<typename T >
template<typename I , typename M >
Sptr< ArrayBase< T > > CNORXZ::ArrayBase< T >::sl ( const IndexInterface< I, M > & begin,
const IndexInterface< I, M > & end )

create hypercubic slice from this container

Template Parameters
Itype of index used to indicate slice edges
Mindex meta type
Parameters
beginbegin edge
endend edge

Definition at line 291 of file array_base.cc.h.

◆ sl() [2/2]

template<typename T >
template<typename I , typename M >
Sptr< CArrayBase< T > > CNORXZ::CArrayBase< T >::sl ( const IndexInterface< I, M > & begin,
const IndexInterface< I, M > & end ) const

create hypercubic slice from this container

Template Parameters
Itype of index used to indicate slice edges
Mindex meta type
Parameters
beginbegin edge
endend edge

Definition at line 100 of file array_base.cc.h.


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