|
| reducer () |
|
| reducer (const T &, BinaryOperation) |
|
void | combine (const T &Partial) |
|
T & | getElement (size_t) |
|
const T & | getElement (size_t) const |
|
enable_if_t<(_Dims==0) &&sycl::detail::IsPlus< _T, BinaryOperation >::value &&sycl::detail::is_geninteger< _T >::value > | operator++ () |
|
enable_if_t<(_Dims==0) &&sycl::detail::IsPlus< _T, BinaryOperation >::value &&sycl::detail::is_geninteger< _T >::value > | operator++ (int) |
|
enable_if_t<(_Dims==0) &&sycl::detail::IsPlus< _T, BinaryOperation >::value > | operator+= (const _T &Partial) |
|
enable_if_t<(_Dims==0) &&sycl::detail::IsMultiplies< _T, BinaryOperation >::value > | operator*= (const _T &Partial) |
|
enable_if_t<(_Dims==0) &&sycl::detail::IsBitOR< _T, BinaryOperation >::value > | operator|= (const _T &Partial) |
|
enable_if_t<(_Dims==0) &&sycl::detail::IsBitXOR< _T, BinaryOperation >::value > | operator^= (const _T &Partial) |
|
enable_if_t<(_Dims==0) &&sycl::detail::IsBitAND< _T, BinaryOperation >::value > | operator&= (const _T &Partial) |
|
enable_if_t< BasicCheck< _T, Space, _BinaryOperation > &&(IsReduOptForFastAtomicFetch< T, _BinaryOperation >::value||IsReduOptForAtomic64Add< T, _BinaryOperation >::value) &&sycl::detail::IsPlus< T, _BinaryOperation >::value > | atomic_combine (_T *ReduVarPtr) const |
| Atomic ADD operation: *ReduVarPtr += MValue;. More...
|
|
enable_if_t< BasicCheck< _T, Space, _BinaryOperation > &&IsReduOptForFastAtomicFetch< T, _BinaryOperation >::value &&sycl::detail::IsBitOR< T, _BinaryOperation >::value > | atomic_combine (_T *ReduVarPtr) const |
| Atomic BITWISE OR operation: *ReduVarPtr |= MValue;. More...
|
|
enable_if_t< BasicCheck< _T, Space, _BinaryOperation > &&IsReduOptForFastAtomicFetch< T, _BinaryOperation >::value &&sycl::detail::IsBitXOR< T, _BinaryOperation >::value > | atomic_combine (_T *ReduVarPtr) const |
| Atomic BITWISE XOR operation: *ReduVarPtr ^= MValue;. More...
|
|
enable_if_t< std::is_same< typename remove_AS< _T >::type, T >::value &&IsReduOptForFastAtomicFetch< T, _BinaryOperation >::value &&sycl::detail::IsBitAND< T, _BinaryOperation >::value &&(Space==access::address_space::global_space||Space==access::address_space::local_space)> | atomic_combine (_T *ReduVarPtr) const |
| Atomic BITWISE AND operation: *ReduVarPtr &= MValue;. More...
|
|
enable_if_t< BasicCheck< _T, Space, _BinaryOperation > &&IsReduOptForFastAtomicFetch< T, _BinaryOperation >::value &&sycl::detail::IsMinimum< T, _BinaryOperation >::value > | atomic_combine (_T *ReduVarPtr) const |
| Atomic MIN operation: *ReduVarPtr = sycl::minimum(*ReduVarPtr, MValue);. More...
|
|
enable_if_t< BasicCheck< _T, Space, _BinaryOperation > &&IsReduOptForFastAtomicFetch< T, _BinaryOperation >::value &&sycl::detail::IsMaximum< T, _BinaryOperation >::value > | atomic_combine (_T *ReduVarPtr) const |
| Atomic MAX operation: *ReduVarPtr = sycl::maximum(*ReduVarPtr, MValue);. More...
|
|
template<typename T, class BinaryOperation, int Dims, size_t Extent, class Algorithm, bool View>
class cl::sycl::ext::oneapi::detail::reducer< T, BinaryOperation, Dims, Extent, Algorithm, View, enable_if_t< Dims==0 &&Extent==1 &&View==false &&IsKnownIdentityOp< T, BinaryOperation >::value > >
Specialization of the generic class 'reducer'.
It is used for reductions of those types and operations for which the identity value is known.
It allows to reduce the size of the 'reducer' object by not holding the identity field inside it and allows to add a default constructor.
Definition at line 343 of file reduction.hpp.