blitz Version 1.0.2
Loading...
Searching...
No Matches
blitz::FastTV2Iterator< P_numtype, N_length > Class Template Reference

#include <tv2fastiter.h>

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

Public Types

typedef FastTV2IteratorBase< P_numtype, N_length, const TinyVector< P_numtype, N_length > & > T_base
 
typedef T_base::T_numtype T_numtype
 
typedef T_base::T_vector T_vector
 
typedef T_base::T_iterator T_iterator
 
typedef T_base::T_ctorArg1 T_ctorArg1
 
typedef T_base::T_ctorArg2 T_ctorArg2
 
typedef T_base::T_range_result T_range_result
 
- Public Types inherited from blitz::FastTV2IteratorBase< P_numtype, N_length, const TinyVector< P_numtype, N_length > & >
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, const TinyVector< P_numtype, N_length > & > T_iterator
 
typedef const T_vectorT_ctorArg1
 
typedef int T_ctorArg2
 
typedef FastTV2CopyIterator< P_numtype, N_length > T_range_result
 

Public Member Functions

 FastTV2Iterator (const FastTV2Iterator< P_numtype, N_length > &x)
 
 FastTV2Iterator (const T_vector &array)
 
void operator= (const FastTV2Iterator< P_numtype, N_length > &x)
 
void operator= (const T_iterator &x)
 
T_numtype operator() (int i) const
 
T_result operator() (TinyVector< int, 1 > i) const
 
- Public Member Functions inherited from blitz::FastTV2IteratorBase< P_numtype, N_length, const TinyVector< P_numtype, N_length > & >
 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
 
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_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
 
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
 
 FastTV2IteratorBase (const T_iterator &x)
 
 FastTV2IteratorBase (const T_vector &array)
 
void operator= (const T_iterator &x)
 
 ~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
 
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_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
 
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 rank_
 
static const int numArrayOperands
 
static const int numTVOperands
 
static const int numTMOperands
 
static const int numIndexPlaceholders
 
- Static Public Attributes inherited from blitz::FastTV2IteratorBase< P_numtype, N_length, const TinyVector< P_numtype, N_length > & >
static const int numArrayOperands
 
static const int numTVOperands
 
static const int numTMOperands
 
static const int numIndexPlaceholders
 
static const int minWidth
 
static const int maxWidth
 
static const int rank_
 
static const int numArrayOperands
 
static const int numTVOperands
 
static const int numTMOperands
 
static const int numIndexPlaceholders
 
static const int minWidth
 
static const int maxWidth
 
static const int rank_
 

Additional Inherited Members

- Protected Attributes inherited from blitz::FastTV2IteratorBase< P_numtype, N_length, const TinyVector< P_numtype, N_length > & >
const T_numtype *restrict data_
 
const TinyVector< P_numtype, N_length > & array_
 
ConstPointerStack< T_numtype, rank_stack_
 
const T_numtype *restrict data_
 
const TinyVector< P_numtype, N_length > & array_
 
ConstPointerStack< T_numtype, rank_stack_
 
- Static Protected Attributes inherited from blitz::FastTV2IteratorBase< P_numtype, N_length, const TinyVector< P_numtype, N_length > & >
static const diffType stride_
 
static const diffType stride_
 

Member Typedef Documentation

◆ T_base

template<typename P_numtype, int N_length>
typedef FastTV2IteratorBase<P_numtype, N_length, const TinyVector<P_numtype, N_length>&> blitz::FastTV2Iterator< P_numtype, N_length >::T_base

◆ T_ctorArg1

template<typename P_numtype, int N_length>
typedef T_base::T_ctorArg1 blitz::FastTV2Iterator< P_numtype, N_length >::T_ctorArg1

◆ T_ctorArg2

template<typename P_numtype, int N_length>
typedef T_base::T_ctorArg2 blitz::FastTV2Iterator< P_numtype, N_length >::T_ctorArg2

◆ T_iterator

template<typename P_numtype, int N_length>
typedef T_base::T_iterator blitz::FastTV2Iterator< P_numtype, N_length >::T_iterator

◆ T_numtype

template<typename P_numtype, int N_length>
typedef T_base::T_numtype blitz::FastTV2Iterator< P_numtype, N_length >::T_numtype

◆ T_range_result

template<typename P_numtype, int N_length>
typedef T_base::T_range_result blitz::FastTV2Iterator< P_numtype, N_length >::T_range_result

◆ T_vector

template<typename P_numtype, int N_length>
typedef T_base::T_vector blitz::FastTV2Iterator< P_numtype, N_length >::T_vector

Constructor & Destructor Documentation

◆ FastTV2Iterator() [1/2]

template<typename P_numtype, int N_length>
blitz::FastTV2Iterator< P_numtype, N_length >::FastTV2Iterator ( const FastTV2Iterator< P_numtype, N_length > & x)
inline

◆ FastTV2Iterator() [2/2]

template<typename P_numtype, int N_length>
blitz::FastTV2Iterator< P_numtype, N_length >::FastTV2Iterator ( const T_vector & array)
inline

Member Function Documentation

◆ operator()() [1/2]

template<typename P_numtype, int N_length>
T_numtype blitz::FastTV2IteratorBase< P_numtype, N_length, const TinyVector< P_numtype, N_length > & >::operator() ( int i) const
inline

◆ operator()() [2/2]

template<typename P_numtype, int N_length>
T_result blitz::FastTV2IteratorBase< P_numtype, N_length, const TinyVector< P_numtype, N_length > & >::operator() ( TinyVector< int, 1 > i) const
inline

◆ operator=() [1/2]

template<typename P_numtype, int N_length>
void blitz::FastTV2Iterator< P_numtype, N_length >::operator= ( const FastTV2Iterator< P_numtype, N_length > & x)
inline

◆ operator=() [2/2]

template<typename P_numtype, int N_length>
void blitz::FastTV2IteratorBase< P_numtype, N_length, const TinyVector< P_numtype, N_length > & >::operator= ( const T_iterator & x)
inline

Member Data Documentation

◆ numArrayOperands

template<typename P_numtype, int N_length>
const int blitz::FastTV2IteratorBase< P_numtype, N_length, const TinyVector< P_numtype, N_length > & >::numArrayOperands
static

◆ numIndexPlaceholders

template<typename P_numtype, int N_length>
const int blitz::FastTV2IteratorBase< P_numtype, N_length, const TinyVector< P_numtype, N_length > & >::numIndexPlaceholders
static

◆ numTMOperands

template<typename P_numtype, int N_length>
const int blitz::FastTV2IteratorBase< P_numtype, N_length, const TinyVector< P_numtype, N_length > & >::numTMOperands
static

◆ numTVOperands

template<typename P_numtype, int N_length>
const int blitz::FastTV2IteratorBase< P_numtype, N_length, const TinyVector< P_numtype, N_length > & >::numTVOperands
static

◆ rank_

template<typename P_numtype, int N_length>
const int blitz::FastTV2IteratorBase< P_numtype, N_length, const TinyVector< P_numtype, N_length > & >::rank_
static

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