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

#include <indexexpr.h>

Inheritance diagram for blitz::IndexPlaceholder< N0 >:
Inheritance graph
Collaboration diagram for blitz::IndexPlaceholder< N0 >:
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 N0>
typedef int blitz::IndexPlaceholder< N0 >::T_ctorArg1

◆ T_ctorArg2

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

◆ T_numtype

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

◆ T_optype

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

◆ T_range_result

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

◆ T_result

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

◆ T_typeprop

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

Constructor & Destructor Documentation

◆ IndexPlaceholder() [1/2]

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

◆ IndexPlaceholder() [2/2]

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

◆ ~IndexPlaceholder()

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

Member Function Documentation

◆ _bz_offsetData()

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

◆ advance() [1/2]

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

◆ advance() [2/2]

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

◆ advanceUnitStride()

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

◆ ascending()

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

◆ canCollapse()

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

◆ domain()

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

◆ fastRead()

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

◆ fastRead_tv()

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

◆ isStride()

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

◆ isUnitStride() [1/2]

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

◆ isUnitStride() [2/2]

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

◆ isVectorAligned()

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

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

◆ lbound()

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

◆ loadStride()

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

◆ moveTo()

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

◆ operator()() [1/3]

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

◆ operator()() [2/3]

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

◆ operator()() [3/3]

template<int N0>
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< N0 >::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 N0>
int blitz::IndexPlaceholder< N0 >::operator* ( ) const
inline

◆ operator=()

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

◆ operator[]()

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

◆ ordering()

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

◆ pop()

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

◆ prettyPrint()

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

◆ push()

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

◆ shapeCheck()

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

◆ shift() [1/2]

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

◆ shift() [2/2]

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

◆ suggestStride()

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

◆ ubound()

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

Member Data Documentation

◆ maxWidth

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

◆ minWidth

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

◆ numArrayOperands

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

◆ numIndexPlaceholders

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

◆ numTMOperands

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

◆ numTVOperands

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

◆ rank_

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

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