blitz Version 1.0.2
|
#include <tv2fastiter.h>
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. | |
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_vector & | T_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. | |
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_vector & | array () 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 |
typedef const T_vector& blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::T_ctorArg1 |
typedef int blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::T_ctorArg2 |
typedef FastTV2IteratorBase<P_numtype, N_length, P_arraytype> blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::T_iterator |
typedef P_numtype blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::T_numtype |
typedef opType<T_numtype>::T_optype blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::T_optype |
typedef FastTV2CopyIterator<P_numtype, N_length> blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::T_range_result |
typedef unwrapET<T_typeprop>::T_unwrapped blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::T_result |
typedef unwrapET<T_tvtypeprop>::T_unwrapped blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::T_tvresult |
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.
typedef asET<T_numtype>::T_wrapped blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::T_typeprop |
typedef TinyVector<T_numtype, N_length> blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::T_vector |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Since data_ is simd aligned by construction, we just have to check the offest.
References true.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
References blitz::areShapesConformable().
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
protected |
Referenced by blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::array(), blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::fastRead(), blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::FastTV2IteratorBase(), blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::operator()(), blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::operator=(), blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::prettyPrint(), and blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::shift().
|
protected |
Referenced by blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::advance(), blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::advanceUnitStride(), blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::data(), blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::fastRead_tv(), blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::FastTV2IteratorBase(), blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::first_value(), blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::operator*(), blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::operator=(), blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::operator[](), blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::pop(), blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::push(), and blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::shift().
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
protected |
|
staticprotected |
Referenced by blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::advance(), blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::isStride(), blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::isUnitStride(), blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::operator[](), blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::stride(), and blitz::FastTV2IteratorBase< P_numtype, N_length, P_arraytype >::suggestStride().