Txeo v0.1
A Developer-Friendly TensorFlow C++ Wrapper
Loading...
Searching...
No Matches
txeo::TensorIterator< T > Class Template Reference

#include <TensorIterator.h>

Collaboration diagram for txeo::TensorIterator< T >:
Collaboration graph

Public Types

using value_type = T
 
using pointer = T *
 
using reference = T &
 
using difference_type = std::ptrdiff_t
 
using iterator_category = std::random_access_iterator_tag
 

Public Member Functions

 TensorIterator (T *elements, std::ptrdiff_t step=1)
 
reference operator* () const
 
pointer operator-> () const
 
TensorIteratoroperator++ ()
 
TensorIterator operator++ (int)
 
TensorIteratoroperator-- ()
 
TensorIterator operator-- (int)
 
TensorIteratoroperator+= (const difference_type &val)
 
TensorIteratoroperator-= (const difference_type &val)
 
difference_type operator- (const TensorIterator &other) const
 
bool operator== (const TensorIterator &other) const
 
bool operator!= (const TensorIterator &other) const
 
bool operator< (const TensorIterator &other) const
 
bool operator> (const TensorIterator &other) const
 
bool operator<= (const TensorIterator &other) const
 
bool operator>= (const TensorIterator &other) const
 

Friends

TensorIterator operator+ (TensorIterator iterator, const difference_type &val)
 
TensorIterator operator+ (const difference_type &val, TensorIterator iterator)
 
TensorIterator operator- (TensorIterator iterator, const difference_type &val)
 

Detailed Description

template<typename T>
class txeo::TensorIterator< T >

Definition at line 11 of file TensorIterator.h.

Member Typedef Documentation

◆ difference_type

template<typename T >
using txeo::TensorIterator< T >::difference_type = std::ptrdiff_t

Definition at line 16 of file TensorIterator.h.

◆ iterator_category

template<typename T >
using txeo::TensorIterator< T >::iterator_category = std::random_access_iterator_tag

Definition at line 17 of file TensorIterator.h.

◆ pointer

template<typename T >
using txeo::TensorIterator< T >::pointer = T *

Definition at line 14 of file TensorIterator.h.

◆ reference

template<typename T >
using txeo::TensorIterator< T >::reference = T &

Definition at line 15 of file TensorIterator.h.

◆ value_type

template<typename T >
using txeo::TensorIterator< T >::value_type = T

Definition at line 13 of file TensorIterator.h.

Constructor & Destructor Documentation

◆ TensorIterator()

template<typename T >
txeo::TensorIterator< T >::TensorIterator ( T *  elements,
std::ptrdiff_t  step = 1 
)
inline

Definition at line 19 of file TensorIterator.h.

19: _elements(elements), _step(step) {}

Member Function Documentation

◆ operator!=()

template<typename T >
bool txeo::TensorIterator< T >::operator!= ( const TensorIterator< T > &  other) const
inline

Definition at line 78 of file TensorIterator.h.

78 {
79 return _elements != other._elements;
80 }

◆ operator*()

template<typename T >
reference txeo::TensorIterator< T >::operator* ( ) const
inline

Definition at line 21 of file TensorIterator.h.

21{ return *_elements; }

◆ operator++() [1/2]

template<typename T >
TensorIterator & txeo::TensorIterator< T >::operator++ ( )
inline

Definition at line 24 of file TensorIterator.h.

24 {
25 _elements += _step;
26 return *this;
27 }

◆ operator++() [2/2]

template<typename T >
TensorIterator txeo::TensorIterator< T >::operator++ ( int  )
inline

Definition at line 29 of file TensorIterator.h.

29 {
30 auto aux = *this;
31 ++(*this);
32 return aux;
33 }

◆ operator+=()

template<typename T >
TensorIterator & txeo::TensorIterator< T >::operator+= ( const difference_type val)
inline

Definition at line 46 of file TensorIterator.h.

46 {
47 _elements += val * _step;
48 return *this;
49 }

◆ operator-()

template<typename T >
difference_type txeo::TensorIterator< T >::operator- ( const TensorIterator< T > &  other) const
inline

Definition at line 71 of file TensorIterator.h.

71 {
72 return (_elements - other._elements) / _step;
73 }

◆ operator--() [1/2]

template<typename T >
TensorIterator & txeo::TensorIterator< T >::operator-- ( )
inline

Definition at line 35 of file TensorIterator.h.

35 {
36 _elements -= _step;
37 return *this;
38 }

◆ operator--() [2/2]

template<typename T >
TensorIterator txeo::TensorIterator< T >::operator-- ( int  )
inline

Definition at line 40 of file TensorIterator.h.

40 {
41 auto aux = *this;
42 --(*this);
43 return aux;
44 }

◆ operator-=()

template<typename T >
TensorIterator & txeo::TensorIterator< T >::operator-= ( const difference_type val)
inline

Definition at line 51 of file TensorIterator.h.

51 {
52 _elements -= val * _step;
53 return *this;
54 }

◆ operator->()

template<typename T >
pointer txeo::TensorIterator< T >::operator-> ( ) const
inline

Definition at line 22 of file TensorIterator.h.

22{ return _elements; }

◆ operator<()

template<typename T >
bool txeo::TensorIterator< T >::operator< ( const TensorIterator< T > &  other) const
inline

Definition at line 81 of file TensorIterator.h.

81{ return _elements < other._elements; }

◆ operator<=()

template<typename T >
bool txeo::TensorIterator< T >::operator<= ( const TensorIterator< T > &  other) const
inline

Definition at line 83 of file TensorIterator.h.

83 {
84 return _elements <= other._elements;
85 }

◆ operator==()

template<typename T >
bool txeo::TensorIterator< T >::operator== ( const TensorIterator< T > &  other) const
inline

Definition at line 75 of file TensorIterator.h.

75 {
76 return _elements == other._elements;
77 }

◆ operator>()

template<typename T >
bool txeo::TensorIterator< T >::operator> ( const TensorIterator< T > &  other) const
inline

Definition at line 82 of file TensorIterator.h.

82{ return _elements > other._elements; }

◆ operator>=()

template<typename T >
bool txeo::TensorIterator< T >::operator>= ( const TensorIterator< T > &  other) const
inline

Definition at line 86 of file TensorIterator.h.

86 {
87 return _elements >= other._elements;
88 }

Friends And Related Symbol Documentation

◆ operator+ [1/2]

template<typename T >
TensorIterator operator+ ( const difference_type val,
TensorIterator< T >  iterator 
)
friend

Definition at line 61 of file TensorIterator.h.

61 {
62 iterator += val;
63 return iterator;
64 }

◆ operator+ [2/2]

template<typename T >
TensorIterator operator+ ( TensorIterator< T >  iterator,
const difference_type val 
)
friend

Definition at line 56 of file TensorIterator.h.

56 {
57 iterator += val;
58 return iterator;
59 }

◆ operator-

template<typename T >
TensorIterator operator- ( TensorIterator< T >  iterator,
const difference_type val 
)
friend

Definition at line 66 of file TensorIterator.h.

66 {
67 iterator -= val;
68 return iterator;
69 }

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