blitz Version 1.0.2
Loading...
Searching...
No Matches
blitz::IndexPlaceholder< N > Class Template Reference

#include <indexexpr.h>

Inheritance diagram for blitz::IndexPlaceholder< N >:
Inheritance graph
Collaboration diagram for blitz::IndexPlaceholder< N >:
Collaboration graph

Classes

class  SliceInfo
 
struct  tvresult
 The vectorized return type for an IndexPlaceholder should be some form of range, but that's not useful since a vectorized TinyVector assignment can not contain index placeholders. More...
 

Public Types

typedef int T_numtype
 
typedef int T_ctorArg1
 
typedef int T_ctorArg2
 
typedef int T_range_result
 
typedef opType< T_numtype >::T_optype T_optype
 
typedef asET< T_numtype >::T_wrapped T_typeprop
 
typedef unwrapET< T_typeprop >::T_unwrapped T_result
 

Public Member Functions

 IndexPlaceholder ()
 
 IndexPlaceholder (const IndexPlaceholder< N > &)
 
 ~IndexPlaceholder ()
 
void operator= (const IndexPlaceholder< N > &)
 
int operator* () const
 
template<int N_rank>
T_result operator() (const TinyVector< int, N_rank > &i) const
 
int ascending (int) const
 
int ordering (int) const
 
int lbound (int) const
 
int ubound (int) const
 
RectDomain< rank_domain () const
 
void push (int)
 
void pop (int)
 
void advance ()
 
void advance (int)
 
void loadStride (int)
 
template<int N_rank>
void moveTo (const TinyVector< int, N_rank > &i)
 
bool isUnitStride (int) const
 
bool isUnitStride () const
 
void advanceUnitStride ()
 
bool canCollapse (int, int) const
 
T_result operator[] (int) const
 
T_result fastRead (diffType) const
 
template<int M>
tvresult< M >::Type fastRead_tv (diffType) const
 
bool isVectorAligned (diffType offset) const
 There are no alignment issues here, so just return true.
 
diffType suggestStride (int) const
 
bool isStride (int, diffType) const
 
T_result shift (int offset, int dim) const
 
T_result shift (int offset1, int dim1, int offset2, int dim2) const
 
void _bz_offsetData (sizeType i)
 
T_range_result operator() (RectDomain< rank_ > d) const
 
void prettyPrint (std::string &str, prettyPrintFormat &) const
 
template<typename T_shape>
bool shapeCheck (const T_shape &) const
 
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11>
SliceInfo< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 >::T_slice operator() (T1 r1, T2 r2, T3 r3, T4 r4, T5 r5, T6 r6, T7 r7, T8 r8, T9 r9, T10 r10, T11 r11) const
 

Static Public Attributes

static const int numArrayOperands = 0
 
static const int numTVOperands = 0
 
static const int numTMOperands = 0
 
static const int numIndexPlaceholders = 1
 
static const int minWidth = simdTypes<T_numtype>::vecWidth
 
static const int maxWidth = simdTypes<T_numtype>::vecWidth
 
static const int rank_ = N+1
 

Member Typedef Documentation

◆ T_ctorArg1

template<int N>
typedef int blitz::IndexPlaceholder< N >::T_ctorArg1

◆ T_ctorArg2

template<int N>
typedef int blitz::IndexPlaceholder< N >::T_ctorArg2

◆ T_numtype

template<int N>
typedef int blitz::IndexPlaceholder< N >::T_numtype

◆ T_optype

template<int N>
typedef opType<T_numtype>::T_optype blitz::IndexPlaceholder< N >::T_optype

◆ T_range_result

template<int N>
typedef int blitz::IndexPlaceholder< N >::T_range_result

◆ T_result

template<int N>
typedef unwrapET<T_typeprop>::T_unwrapped blitz::IndexPlaceholder< N >::T_result

◆ T_typeprop

template<int N>
typedef asET<T_numtype>::T_wrapped blitz::IndexPlaceholder< N >::T_typeprop

Constructor & Destructor Documentation

◆ IndexPlaceholder() [1/2]

template<int N>
blitz::IndexPlaceholder< N >::IndexPlaceholder ( )
inline

◆ IndexPlaceholder() [2/2]

template<int N>
blitz::IndexPlaceholder< N >::IndexPlaceholder ( const IndexPlaceholder< N > & )
inline

◆ ~IndexPlaceholder()

template<int N>
blitz::IndexPlaceholder< N >::~IndexPlaceholder ( )
inline

Member Function Documentation

◆ _bz_offsetData()

template<int N>
void blitz::IndexPlaceholder< N >::_bz_offsetData ( sizeType i)
inline

◆ advance() [1/2]

template<int N>
void blitz::IndexPlaceholder< N >::advance ( )
inline

◆ advance() [2/2]

template<int N>
void blitz::IndexPlaceholder< N >::advance ( int )
inline

◆ advanceUnitStride()

template<int N>
void blitz::IndexPlaceholder< N >::advanceUnitStride ( )
inline

◆ ascending()

template<int N>
int blitz::IndexPlaceholder< N >::ascending ( int ) const
inline

◆ canCollapse()

template<int N>
bool blitz::IndexPlaceholder< N >::canCollapse ( int ,
int  ) const
inline

◆ domain()

template<int N>
RectDomain< rank_ > blitz::IndexPlaceholder< N >::domain ( ) const
inline

◆ fastRead()

template<int N>
T_result blitz::IndexPlaceholder< N >::fastRead ( diffType ) const
inline

◆ fastRead_tv()

template<int N>
template<int M>
tvresult< M >::Type blitz::IndexPlaceholder< N >::fastRead_tv ( diffType ) const
inline

◆ isStride()

template<int N>
bool blitz::IndexPlaceholder< N >::isStride ( int ,
diffType  ) const
inline

◆ isUnitStride() [1/2]

template<int N>
bool blitz::IndexPlaceholder< N >::isUnitStride ( ) const
inline

◆ isUnitStride() [2/2]

template<int N>
bool blitz::IndexPlaceholder< N >::isUnitStride ( int ) const
inline

◆ isVectorAligned()

template<int N>
bool blitz::IndexPlaceholder< N >::isVectorAligned ( diffType offset) const
inline

There are no alignment issues here, so just return true.

◆ lbound()

template<int N>
int blitz::IndexPlaceholder< N >::lbound ( int ) const
inline

◆ loadStride()

template<int N>
void blitz::IndexPlaceholder< N >::loadStride ( int )
inline

◆ moveTo()

template<int N>
template<int N_rank>
void blitz::IndexPlaceholder< N >::moveTo ( const TinyVector< int, N_rank > & i)
inline

◆ operator()() [1/3]

template<int N>
template<int N_rank>
T_result blitz::IndexPlaceholder< N >::operator() ( const TinyVector< int, N_rank > & i) const
inline

◆ operator()() [2/3]

template<int N>
T_range_result blitz::IndexPlaceholder< N >::operator() ( RectDomain< rank_ > d) const
inline

◆ operator()() [3/3]

template<int N>
template<typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11>
SliceInfo< T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 >::T_slice blitz::IndexPlaceholder< N >::operator() ( T1 r1,
T2 r2,
T3 r3,
T4 r4,
T5 r5,
T6 r6,
T7 r7,
T8 r8,
T9 r9,
T10 r10,
T11 r11 ) const
inline

◆ operator*()

template<int N>
int blitz::IndexPlaceholder< N >::operator* ( ) const
inline

◆ operator=()

template<int N>
void blitz::IndexPlaceholder< N >::operator= ( const IndexPlaceholder< N > & )
inline

◆ operator[]()

template<int N>
T_result blitz::IndexPlaceholder< N >::operator[] ( int ) const
inline

◆ ordering()

template<int N>
int blitz::IndexPlaceholder< N >::ordering ( int ) const
inline

◆ pop()

template<int N>
void blitz::IndexPlaceholder< N >::pop ( int )
inline

◆ prettyPrint()

template<int N>
void blitz::IndexPlaceholder< N >::prettyPrint ( std::string & str,
prettyPrintFormat &  ) const
inline

◆ push()

template<int N>
void blitz::IndexPlaceholder< N >::push ( int )
inline

◆ shapeCheck()

template<int N>
template<typename T_shape>
bool blitz::IndexPlaceholder< N >::shapeCheck ( const T_shape & ) const
inline

◆ shift() [1/2]

template<int N>
T_result blitz::IndexPlaceholder< N >::shift ( int offset,
int dim ) const
inline

◆ shift() [2/2]

template<int N>
T_result blitz::IndexPlaceholder< N >::shift ( int offset1,
int dim1,
int offset2,
int dim2 ) const
inline

◆ suggestStride()

template<int N>
diffType blitz::IndexPlaceholder< N >::suggestStride ( int ) const
inline

◆ ubound()

template<int N>
int blitz::IndexPlaceholder< N >::ubound ( int ) const
inline

Member Data Documentation

◆ maxWidth

template<int N>
const int blitz::IndexPlaceholder< N >::maxWidth = simdTypes<T_numtype>::vecWidth
static

◆ minWidth

template<int N>
const int blitz::IndexPlaceholder< N >::minWidth = simdTypes<T_numtype>::vecWidth
static

◆ numArrayOperands

template<int N>
const int blitz::IndexPlaceholder< N >::numArrayOperands = 0
static

◆ numIndexPlaceholders

template<int N>
const int blitz::IndexPlaceholder< N >::numIndexPlaceholders = 1
static

◆ numTMOperands

template<int N>
const int blitz::IndexPlaceholder< N >::numTMOperands = 0
static

◆ numTVOperands

template<int N>
const int blitz::IndexPlaceholder< N >::numTVOperands = 0
static

◆ rank_

template<int N>
const int blitz::IndexPlaceholder< N >::rank_ = N+1
static

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