blitz  Version 1.0.2
blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype > Class Template Reference

#include <tv2fastiter.h>

Inheritance diagram for blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >:
Inheritance graph
Collaboration diagram for blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >:
Collaboration graph

Classes

class  SliceInfo
 
struct  tvresult
 For an iterator, the vectorized result for width N is always a TinyVector<T_numtype, N>. More...
 

Public Types

typedef P_numtype T_numtype
 
typedef opType< T_numtype >::T_optype T_optype
 
typedef asET< T_numtype >::T_wrapped T_typeprop
 
typedef unwrapET< T_typeprop >::T_unwrapped T_result
 
typedef ETBase< FastTV2Iterator< T_numtype, simdTypes< T_numtype >::vecWidth > > T_tvtypeprop
 Result type for fastRead_tv is a FastTVIterator. More...
 
typedef unwrapET< T_tvtypeprop >::T_unwrapped T_tvresult
 
typedef TinyVector< T_numtype, N_length > T_vector
 
typedef FastTV2IteratorBase< P_numtype, N_length, P_arraytype > T_iterator
 
typedef const T_vectorT_ctorArg1
 
typedef int T_ctorArg2
 
typedef FastTV2CopyIterator< P_numtype, N_length > T_range_result
 

Public Member Functions

 FastTV2IteratorBase (const T_iterator &x)
 
void operator= (const T_iterator &x)
 
 FastTV2IteratorBase (const T_vector &array)
 
 ~FastTV2IteratorBase ()
 
T_numtype operator() (int i) const
 
T_result operator() (TinyVector< int, 1 > i) const
 
int ascending (const int r) const
 
int ordering (const int r) const
 
int lbound (const int r) const
 
int ubound (const int r) const
 
T_result first_value () const
 
T_result operator* () const
 
T_result operator[] (int i) const
 
T_result fastRead (diffType i) const
 
template<int N>
tvresult< N >::Type fastRead_tv (diffType i) const
 
bool isVectorAligned (diffType offset) const
 Since data_ is simd aligned by construction, we just have to check the offest. More...
 
int suggestStride (int r) const
 
bool isStride (int r, diffType stride) const
 
void push (int position)
 
void pop (int position)
 
void advance ()
 
void advance (int n)
 
void loadStride (int r)
 
const T_numtype *restrict data () const
 
const T_vectorarray () const
 
void _bz_setData (const T_numtype *ptr)
 
void _bz_offsetData (sizeType i)
 
void _bz_offsetData (sizeType offset, int dim)
 
void _bz_offsetData (sizeType offset1, int dim1, sizeType offset2, int dim2)
 
int stride () const
 
bool isUnitStride (int r) const
 
bool isUnitStride () const
 
void advanceUnitStride ()
 
bool canCollapse (int outerLoopRank, int innerLoopRank) const
 
template<typename T_shape >
bool shapeCheck (const T_shape &s) const
 
T_result shift (int offset, int dim) const
 
T_result shift (int offset1, int dim1, int offset2, int dim2) const
 
void prettyPrint (std::string &str, prettyPrintFormat &format) const
 

Static Public Attributes

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

Protected Attributes

const T_numtype *restrict data_
 
P_arraytype array_
 
ConstPointerStack< T_numtype, rank_stack_
 

Static Protected Attributes

static const diffType stride_ =1
 

Member Typedef Documentation

template<typename P_numtype, int N_length, typename P_arraytype>
typedef const T_vector& blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::T_ctorArg1
template<typename P_numtype, int N_length, typename P_arraytype>
typedef int blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::T_ctorArg2
template<typename P_numtype, int N_length, typename P_arraytype>
typedef FastTV2IteratorBase<P_numtype, N_length, P_arraytype> blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::T_iterator
template<typename P_numtype, int N_length, typename P_arraytype>
typedef P_numtype blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::T_numtype
template<typename P_numtype, int N_length, typename P_arraytype>
typedef opType<T_numtype>::T_optype blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::T_optype
template<typename P_numtype, int N_length, typename P_arraytype>
typedef FastTV2CopyIterator<P_numtype, N_length> blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::T_range_result
template<typename P_numtype, int N_length, typename P_arraytype>
typedef unwrapET<T_typeprop>::T_unwrapped blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::T_result
template<typename P_numtype, int N_length, typename P_arraytype>
typedef unwrapET<T_tvtypeprop>::T_unwrapped blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::T_tvresult
template<typename P_numtype, int N_length, typename P_arraytype>
typedef ETBase<FastTV2Iterator<T_numtype, simdTypes<T_numtype>::vecWidth> > blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::T_tvtypeprop

Result type for fastRead_tv is a FastTVIterator.

This is only used for mixed TV/Array expressions.

template<typename P_numtype, int N_length, typename P_arraytype>
typedef asET<T_numtype>::T_wrapped blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::T_typeprop
template<typename P_numtype, int N_length, typename P_arraytype>
typedef TinyVector<T_numtype, N_length> blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::T_vector

Constructor & Destructor Documentation

template<typename P_numtype, int N_length, typename P_arraytype>
blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::FastTV2IteratorBase ( const T_iterator x)
inline
template<typename P_numtype, int N_length, typename P_arraytype>
blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::FastTV2IteratorBase ( const T_vector array)
inline
template<typename P_numtype, int N_length, typename P_arraytype>
blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::~FastTV2IteratorBase ( )
inline

Member Function Documentation

template<typename P_numtype, int N_length, typename P_arraytype>
void blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::_bz_offsetData ( sizeType  i)
inline
template<typename P_numtype, int N_length, typename P_arraytype>
void blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::_bz_offsetData ( sizeType  offset,
int  dim 
)
inline
template<typename P_numtype, int N_length, typename P_arraytype>
void blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::_bz_offsetData ( sizeType  offset1,
int  dim1,
sizeType  offset2,
int  dim2 
)
inline
template<typename P_numtype, int N_length, typename P_arraytype>
void blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::_bz_setData ( const T_numtype ptr)
inline
template<typename P_numtype, int N_length, typename P_arraytype>
void blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::advance ( )
inline
template<typename P_numtype, int N_length, typename P_arraytype>
void blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::advance ( int  n)
inline
template<typename P_numtype, int N_length, typename P_arraytype>
void blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::advanceUnitStride ( )
inline
template<typename P_numtype, int N_length, typename P_arraytype>
const T_vector& blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::array ( ) const
inline
template<typename P_numtype, int N_length, typename P_arraytype>
int blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::ascending ( const int  r) const
inline
template<typename P_numtype, int N_length, typename P_arraytype>
bool blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::canCollapse ( int  outerLoopRank,
int  innerLoopRank 
) const
inline
template<typename P_numtype, int N_length, typename P_arraytype>
const T_numtype* restrict blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::data ( ) const
inline
template<typename P_numtype, int N_length, typename P_arraytype>
T_result blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::fastRead ( diffType  i) const
inline
template<typename P_numtype, int N_length, typename P_arraytype>
template<int N>
tvresult<N>::Type blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::fastRead_tv ( diffType  i) const
inline
template<typename P_numtype, int N_length, typename P_arraytype>
T_result blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::first_value ( ) const
inline
template<typename P_numtype, int N_length, typename P_arraytype>
bool blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::isStride ( int  r,
diffType  stride 
) const
inline
template<typename P_numtype, int N_length, typename P_arraytype>
bool blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::isUnitStride ( int  r) const
inline
template<typename P_numtype, int N_length, typename P_arraytype>
bool blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::isUnitStride ( ) const
inline
template<typename P_numtype, int N_length, typename P_arraytype>
bool blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::isVectorAligned ( diffType  offset) const
inline

Since data_ is simd aligned by construction, we just have to check the offest.

template<typename P_numtype, int N_length, typename P_arraytype>
int blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::lbound ( const int  r) const
inline
template<typename P_numtype, int N_length, typename P_arraytype>
void blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::loadStride ( int  r)
inline
template<typename P_numtype, int N_length, typename P_arraytype>
T_numtype blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::operator() ( int  i) const
inline
template<typename P_numtype, int N_length, typename P_arraytype>
T_result blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::operator() ( TinyVector< int, 1 >  i) const
inline
template<typename P_numtype, int N_length, typename P_arraytype>
T_result blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::operator* ( ) const
inline
template<typename P_numtype, int N_length, typename P_arraytype>
void blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::operator= ( const T_iterator x)
inline
template<typename P_numtype, int N_length, typename P_arraytype>
T_result blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::operator[] ( int  i) const
inline
template<typename P_numtype, int N_length, typename P_arraytype>
int blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::ordering ( const int  r) const
inline
template<typename P_numtype, int N_length, typename P_arraytype>
void blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::pop ( int  position)
inline
template<typename P_numtype, int N_length, typename P_arraytype>
void blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::prettyPrint ( std::string &  str,
prettyPrintFormat format 
) const
inline
template<typename P_numtype, int N_length, typename P_arraytype>
void blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::push ( int  position)
inline
template<typename P_numtype, int N_length, typename P_arraytype>
template<typename T_shape >
bool blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::shapeCheck ( const T_shape &  s) const
inline
template<typename P_numtype, int N_length, typename P_arraytype>
T_result blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::shift ( int  offset,
int  dim 
) const
inline
template<typename P_numtype, int N_length, typename P_arraytype>
T_result blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::shift ( int  offset1,
int  dim1,
int  offset2,
int  dim2 
) const
inline
template<typename P_numtype, int N_length, typename P_arraytype>
int blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::stride ( ) const
inline
template<typename P_numtype, int N_length, typename P_arraytype>
int blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::suggestStride ( int  r) const
inline
template<typename P_numtype, int N_length, typename P_arraytype>
int blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::ubound ( const int  r) const
inline

Member Data Documentation

template<typename P_numtype, int N_length, typename P_arraytype>
const int blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::maxWidth = simdTypes<T_numtype>::vecWidth
static
template<typename P_numtype, int N_length, typename P_arraytype>
const int blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::minWidth = simdTypes<T_numtype>::vecWidth
static
template<typename P_numtype, int N_length, typename P_arraytype>
const int blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::numArrayOperands = 0
static
template<typename P_numtype, int N_length, typename P_arraytype>
const int blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::numIndexPlaceholders = 0
static
template<typename P_numtype, int N_length, typename P_arraytype>
const int blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::numTMOperands = 0
static
template<typename P_numtype, int N_length, typename P_arraytype>
const int blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::numTVOperands = 1
static
template<typename P_numtype, int N_length, typename P_arraytype>
const int blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::rank_ = 1
static

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