Blaze 3.9
Public Types | Public Member Functions | Private Attributes | List of all members
blaze::DVecDVecOuterExpr< VT1, VT2, OP >::ConstIterator Class Reference

Iterator over the elements of the dense vector outer map expression. More...

#include <DVecDVecOuterExpr.h>

Public Types

using IteratorCategory = std::random_access_iterator_tag
 The iterator category.
 
using ValueType = ElementType
 Type of the underlying elements.
 
using PointerType = ElementType *
 Pointer return type.
 
using ReferenceType = ElementType &
 Reference return type.
 
using DifferenceType = ptrdiff_t
 Difference between two iterators.
 
using iterator_category = IteratorCategory
 The iterator category.
 
using value_type = ValueType
 Type of the underlying elements.
 
using pointer = PointerType
 Pointer return type.
 
using reference = ReferenceType
 Reference return type.
 
using difference_type = DifferenceType
 Difference between two iterators.
 
using LeftIteratorType = ConstIterator_t< VT1 >
 ConstIterator type of the left-hand side dense vector expression.
 
using RightIteratorType = ConstIterator_t< VT2 >
 ConstIterator type of the right-hand side dense vector expression.
 

Public Member Functions

 ConstIterator (LeftIteratorType left, RightIteratorType right, OP op)
 Constructor for the ConstIterator class. More...
 
BLAZE_DEVICE_CALLABLE ConstIteratoroperator+= (size_t inc)
 Addition assignment operator. More...
 
BLAZE_DEVICE_CALLABLE ConstIteratoroperator-= (size_t dec)
 Subtraction assignment operator. More...
 
BLAZE_DEVICE_CALLABLE ConstIteratoroperator++ ()
 Pre-increment operator. More...
 
BLAZE_DEVICE_CALLABLE const ConstIterator operator++ (int)
 Post-increment operator. More...
 
BLAZE_DEVICE_CALLABLE ConstIteratoroperator-- ()
 Pre-decrement operator. More...
 
BLAZE_DEVICE_CALLABLE const ConstIterator operator-- (int)
 Post-decrement operator. More...
 
ReturnType operator* () const
 Direct access to the element at the current iterator position. More...
 
auto load () const noexcept
 Access to the SIMD elements of the vector. More...
 
bool operator== (const ConstIterator &rhs) const
 Equality comparison between two ConstIterator objects. More...
 
bool operator!= (const ConstIterator &rhs) const
 Inequality comparison between two ConstIterator objects. More...
 
bool operator< (const ConstIterator &rhs) const
 Less-than comparison between two ConstIterator objects. More...
 
bool operator> (const ConstIterator &rhs) const
 Greater-than comparison between two ConstIterator objects. More...
 
bool operator<= (const ConstIterator &rhs) const
 Less-than comparison between two ConstIterator objects. More...
 
bool operator>= (const ConstIterator &rhs) const
 Greater-than comparison between two ConstIterator objects. More...
 
DifferenceType operator- (const ConstIterator &rhs) const
 Calculating the number of elements between two iterators. More...
 

Private Attributes

LeftIteratorType left_
 Iterator to the current left-hand side element.
 
RightIteratorType right_
 Iterator to the current right-hand side element.
 
OP op_
 The custom binary operation.
 

Detailed Description

template<typename VT1, typename VT2, typename OP>
class blaze::DVecDVecOuterExpr< VT1, VT2, OP >::ConstIterator

Iterator over the elements of the dense vector outer map expression.

Constructor & Destructor Documentation

◆ ConstIterator()

template<typename VT1 , typename VT2 , typename OP >
blaze::DVecDVecOuterExpr< VT1, VT2, OP >::ConstIterator::ConstIterator ( LeftIteratorType  left,
RightIteratorType  right,
OP  op 
)
inline

Constructor for the ConstIterator class.

Parameters
leftIterator to the initial left-hand side element.
rightIterator to the initial right-hand side element.
opThe custom binary operation.

Member Function Documentation

◆ load()

template<typename VT1 , typename VT2 , typename OP >
auto blaze::DVecDVecOuterExpr< VT1, VT2, OP >::ConstIterator::load ( ) const
inlinenoexcept

Access to the SIMD elements of the vector.

Returns
The resulting SIMD element.

◆ operator!=()

template<typename VT1 , typename VT2 , typename OP >
bool blaze::DVecDVecOuterExpr< VT1, VT2, OP >::ConstIterator::operator!= ( const ConstIterator rhs) const
inline

Inequality comparison between two ConstIterator objects.

Parameters
rhsThe right-hand side iterator.
Returns
true if the iterators don't refer to the same element, false if they do.

◆ operator*()

template<typename VT1 , typename VT2 , typename OP >
ReturnType blaze::DVecDVecOuterExpr< VT1, VT2, OP >::ConstIterator::operator* ( ) const
inline

Direct access to the element at the current iterator position.

Returns
The resulting value.

◆ operator++() [1/2]

template<typename VT1 , typename VT2 , typename OP >
BLAZE_DEVICE_CALLABLE ConstIterator & blaze::DVecDVecOuterExpr< VT1, VT2, OP >::ConstIterator::operator++ ( )
inline

Pre-increment operator.

Returns
Reference to the incremented iterator.

◆ operator++() [2/2]

template<typename VT1 , typename VT2 , typename OP >
BLAZE_DEVICE_CALLABLE const ConstIterator blaze::DVecDVecOuterExpr< VT1, VT2, OP >::ConstIterator::operator++ ( int  )
inline

Post-increment operator.

Returns
The previous position of the iterator.

◆ operator+=()

template<typename VT1 , typename VT2 , typename OP >
BLAZE_DEVICE_CALLABLE ConstIterator & blaze::DVecDVecOuterExpr< VT1, VT2, OP >::ConstIterator::operator+= ( size_t  inc)
inline

Addition assignment operator.

Parameters
incThe increment of the iterator.
Returns
The incremented iterator.

◆ operator-()

template<typename VT1 , typename VT2 , typename OP >
DifferenceType blaze::DVecDVecOuterExpr< VT1, VT2, OP >::ConstIterator::operator- ( const ConstIterator rhs) const
inline

Calculating the number of elements between two iterators.

Parameters
rhsThe right-hand side iterator.
Returns
The number of elements between the two iterators.

◆ operator--() [1/2]

template<typename VT1 , typename VT2 , typename OP >
BLAZE_DEVICE_CALLABLE ConstIterator & blaze::DVecDVecOuterExpr< VT1, VT2, OP >::ConstIterator::operator-- ( )
inline

Pre-decrement operator.

Returns
Reference to the decremented iterator.

◆ operator--() [2/2]

template<typename VT1 , typename VT2 , typename OP >
BLAZE_DEVICE_CALLABLE const ConstIterator blaze::DVecDVecOuterExpr< VT1, VT2, OP >::ConstIterator::operator-- ( int  )
inline

Post-decrement operator.

Returns
The previous position of the iterator.

◆ operator-=()

template<typename VT1 , typename VT2 , typename OP >
BLAZE_DEVICE_CALLABLE ConstIterator & blaze::DVecDVecOuterExpr< VT1, VT2, OP >::ConstIterator::operator-= ( size_t  dec)
inline

Subtraction assignment operator.

Parameters
decThe decrement of the iterator.
Returns
The decremented iterator.

◆ operator<()

template<typename VT1 , typename VT2 , typename OP >
bool blaze::DVecDVecOuterExpr< VT1, VT2, OP >::ConstIterator::operator< ( const ConstIterator rhs) const
inline

Less-than comparison between two ConstIterator objects.

Parameters
rhsThe right-hand side iterator.
Returns
true if the left-hand side iterator is smaller, false if not.

◆ operator<=()

template<typename VT1 , typename VT2 , typename OP >
bool blaze::DVecDVecOuterExpr< VT1, VT2, OP >::ConstIterator::operator<= ( const ConstIterator rhs) const
inline

Less-than comparison between two ConstIterator objects.

Parameters
rhsThe right-hand side iterator.
Returns
true if the left-hand side iterator is smaller or equal, false if not.

◆ operator==()

template<typename VT1 , typename VT2 , typename OP >
bool blaze::DVecDVecOuterExpr< VT1, VT2, OP >::ConstIterator::operator== ( const ConstIterator rhs) const
inline

Equality comparison between two ConstIterator objects.

Parameters
rhsThe right-hand side iterator.
Returns
true if the iterators refer to the same element, false if not.

◆ operator>()

template<typename VT1 , typename VT2 , typename OP >
bool blaze::DVecDVecOuterExpr< VT1, VT2, OP >::ConstIterator::operator> ( const ConstIterator rhs) const
inline

Greater-than comparison between two ConstIterator objects.

Parameters
rhsThe right-hand side iterator.
Returns
true if the left-hand side iterator is greater, false if not.

◆ operator>=()

template<typename VT1 , typename VT2 , typename OP >
bool blaze::DVecDVecOuterExpr< VT1, VT2, OP >::ConstIterator::operator>= ( const ConstIterator rhs) const
inline

Greater-than comparison between two ConstIterator objects.

Parameters
rhsThe right-hand side iterator.
Returns
true if the left-hand side iterator is greater or equal, false if not.

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