26 #ifndef _BLAZE_MATH_DENSE_DENSEITERATOR_H_ 27 #define _BLAZE_MATH_DENSE_DENSEITERATOR_H_ 56 template<
typename Type
85 template< typename Other,
bool AF2 >
118 inline
ReferenceType operator[](
size_t index ) const noexcept;
166 template< typename Type
179 template<
typename Type
192 template<
typename Type
194 template<
typename Other
216 template<
typename Type
232 template<
typename Type
255 template<
typename Type
270 template<
typename Type
284 template<
typename Type
299 template<
typename Type
322 template<
typename Type
337 template<
typename Type
352 template<
typename Type
375 template<
typename Type
402 template<
typename Type
425 template<
typename Type
447 template<
typename Type
468 template<
typename Type
491 template<
typename Type
511 template<
typename Type
531 template<
typename Type
551 template<
typename T1,
bool AF1,
typename T2,
bool AF2 >
554 template<
typename T1,
bool AF1,
typename T2,
bool AF2 >
557 template<
typename T1,
bool AF1,
typename T2,
bool AF2 >
558 inline bool operator<( const DenseIterator<T1,AF1>& lhs,
const DenseIterator<T2,AF2>& rhs ) noexcept;
560 template<
typename T1,
bool AF1,
typename T2,
bool AF2 >
563 template<
typename T1,
bool AF1,
typename T2,
bool AF2 >
564 inline bool operator<=( const DenseIterator<T1,AF1>& lhs,
const DenseIterator<T2,AF2>& rhs ) noexcept;
566 template<
typename T1,
bool AF1,
typename T2,
bool AF2 >
569 template<
typename Type,
bool AF >
572 template<
typename Type,
bool AF >
575 template<
typename Type,
bool AF >
578 template<
typename Type,
bool AF >
591 template<
typename T1
609 template<
typename T1
627 template<
typename T1
645 template<
typename T1
651 return lhs.base() > rhs.
base();
663 template<
typename T1
681 template<
typename T1
687 return lhs.base() >= rhs.
base();
699 template<
typename Type
715 template<
typename Type
731 template<
typename Type
747 template<
typename Type
751 return lhs.base() - rhs.
base();
ReferenceType operator*() const noexcept
Direct access to the element at the current iterator position.
Definition: DenseIterator.h:340
Pointer difference type of the Blaze library.
Type ValueType
Type of the underlying elements.
Definition: DenseIterator.h:63
std::random_access_iterator_tag IteratorCategory
The iterator category.
Definition: DenseIterator.h:62
ReferenceType reference
Reference return type.
Definition: DenseIterator.h:72
Header file for basic type definitions.
Type * PointerType
Pointer return type.
Definition: DenseIterator.h:64
const SIMDType load() const noexcept
Load of the SIMD element at the current iterator position.
Definition: DenseIterator.h:405
BLAZE_ALWAYS_INLINE EnableIf_< And< IsIntegral< T1 >, HasSize< T1, 1UL > > > storea(T1 *address, const SIMDi8< T2 > &value) noexcept
Aligned store of a vector of 1-byte integral values.
Definition: Storea.h:79
typename SIMDTrait< T >::Type SIMDTrait_
Auxiliary alias declaration for the SIMDTrait class template.The SIMDTrait_ alias declaration provide...
Definition: SIMDTrait.h:316
const DenseIterator< Type, AF > operator+(const DenseIterator< Type, AF > &it, ptrdiff_t inc) noexcept
Addition between a DenseIterator and an integral value.
Definition: DenseIterator.h:701
const SIMDType loada() const noexcept
Aligned load of the SIMD element at the current iterator position.
Definition: DenseIterator.h:428
const DenseIterator< Type, AF > operator-(const DenseIterator< Type, AF > &it, ptrdiff_t inc) noexcept
Subtraction between a DenseIterator and an integral value.
Definition: DenseIterator.h:733
PointerType pointer
Pointer return type.
Definition: DenseIterator.h:71
BLAZE_ALWAYS_INLINE const EnableIf_< And< IsIntegral< T >, HasSize< T, 1UL > >, If_< IsSigned< T >, SIMDint8, SIMDuint8 > > loadu(const T *address) noexcept
Loads a vector of 1-byte integral values.
Definition: Loadu.h:77
DenseIterator() noexcept
Default constructor for the DenseIterator class.
Definition: DenseIterator.h:168
SIMDTrait_< Type > SIMDType
SIMD type of the elements.
Definition: DenseIterator.h:76
Type & ReferenceType
Reference return type.
Definition: DenseIterator.h:65
void storea(const SIMDType &value) const noexcept
Aligned store of the SIMD element at the current iterator position.
Definition: DenseIterator.h:493
ptrdiff_t DifferenceType
Difference between two iterators.
Definition: DenseIterator.h:66
Namespace of the Blaze C++ math library.
Definition: Blaze.h:58
DenseIterator & operator-=(ptrdiff_t inc) noexcept
Subtraction assignment operator.
Definition: DenseIterator.h:234
DenseIterator & operator--() noexcept
Pre-decrement operator.
Definition: DenseIterator.h:286
constexpr bool operator>(const NegativeAccuracy< A > &lhs, const T &rhs)
Greater-than comparison between a NegativeAccuracy object and a floating point value.
Definition: Accuracy.h:367
constexpr bool operator>=(const NegativeAccuracy< A > &, const T &rhs)
Greater-or-equal-than comparison between a NegativeAccuracy object and a floating point value...
Definition: Accuracy.h:443
void stream(const SIMDType &value) const noexcept
Aligned, non-temporal store of the SIMD element at the current iterator position. ...
Definition: DenseIterator.h:533
constexpr bool operator==(const NegativeAccuracy< A > &lhs, const T &rhs)
Equality comparison between a NegativeAccuracy object and a floating point value. ...
Definition: Accuracy.h:250
Header file for all SIMD functionality.
void store(const SIMDType &value) const noexcept
Store of the SIMD element at the current iterator position.
Definition: DenseIterator.h:470
BLAZE_ALWAYS_INLINE const EnableIf_< And< IsIntegral< T >, HasSize< T, 1UL > >, If_< IsSigned< T >, SIMDint8, SIMDuint8 > > loada(const T *address) noexcept
Loads a vector of 1-byte integral values.
Definition: Loada.h:80
const SIMDType loadu() const noexcept
Unaligned load of the SIMD element at the current iterator position.
Definition: DenseIterator.h:450
DenseIterator & operator++() noexcept
Pre-increment operator.
Definition: DenseIterator.h:257
constexpr bool operator!=(const NegativeAccuracy< A > &lhs, const T &rhs)
Inequality comparison between a NegativeAccuracy object and a floating point value.
Definition: Accuracy.h:290
PointerType ptr_
Pointer to the current element.
Definition: DenseIterator.h:148
BLAZE_ALWAYS_INLINE EnableIf_< And< IsIntegral< T1 >, HasSize< T1, 1UL > > > stream(T1 *address, const SIMDi8< T2 > &value) noexcept
Aligned, non-temporal store of a vector of 1-byte integral values.
Definition: Stream.h:75
Header file for run time assertion macros.
PointerType base() const noexcept
Low-level access to the underlying member of the iterator.
Definition: DenseIterator.h:377
PointerType operator->() const noexcept
Direct access to the element at the current iterator position.
Definition: DenseIterator.h:355
Implementation of a generic iterator for dense vectors and matrices.The DenseIterator represents a ge...
Definition: DenseIterator.h:58
BLAZE_ALWAYS_INLINE EnableIf_< And< IsIntegral< T1 >, HasSize< T1, 1UL > > > storeu(T1 *address, const SIMDi8< T2 > &value) noexcept
Unaligned store of a vector of 1-byte integral values.
Definition: Storeu.h:76
BLAZE_ALWAYS_INLINE bool checkAlignment(const T *address)
Checks the alignment of the given address.
Definition: AlignmentCheck.h:68
ReferenceType operator[](size_t index) const noexcept
Direct access to the underlying elements.
Definition: DenseIterator.h:325
Header file for the alignment check function.
DenseIterator & operator+=(ptrdiff_t inc) noexcept
Addition assignment operator.
Definition: DenseIterator.h:218
ValueType value_type
Type of the underlying elements.
Definition: DenseIterator.h:70
IteratorCategory iterator_category
The iterator category.
Definition: DenseIterator.h:69
#define BLAZE_INTERNAL_ASSERT(expr, msg)
Run time assertion macro for internal checks.In case of an invalid run time expression, the program execution is terminated. The BLAZE_INTERNAL_ASSERT macro can be disabled by setting the BLAZE_USER_ASSERTION flag to zero or by defining NDEBUG during the compilation.
Definition: Assert.h:101
void storeu(const SIMDType &value) const noexcept
Unaligned store of the SIMD element at the current iterator position.
Definition: DenseIterator.h:513