|
| reducer () |
|
| reducer (const IdentityContainerT &, BinaryOperation) |
|
| reducer (const detail::ReducerToken< BinaryOperation, IdentityContainerT > &Token) |
|
| reducer (const reducer &)=delete |
|
| reducer (reducer &&)=delete |
|
reducer & | operator= (const reducer &)=delete |
|
reducer & | operator= (reducer &&)=delete |
|
reducer & | combine (const T &Partial) |
|
T | identity () const |
|
std::enable_if_t<(_Dims==0) &&IsPlus< _T, BinaryOp >::value &&is_geninteger_v< _T >, reducer< T, BinaryOperation, Dims, Extent, IdentityContainerT, View, std::enable_if_t< Dims==0 &&Extent==1 &&View==false &&detail::IsKnownIdentityOp< T, BinaryOperation >::value > > & > | operator++ () |
|
std::enable_if_t<(_Dims==0) &&IsPlus< _T, BinaryOp >::value &&is_geninteger_v< _T >, reducer< T, BinaryOperation, Dims, Extent, IdentityContainerT, View, std::enable_if_t< Dims==0 &&Extent==1 &&View==false &&detail::IsKnownIdentityOp< T, BinaryOperation >::value > > & > | operator++ (int) |
|
std::enable_if_t<(_Dims==0) &&IsPlus< _T, BinaryOp >::value, reducer< T, BinaryOperation, Dims, Extent, IdentityContainerT, View, std::enable_if_t< Dims==0 &&Extent==1 &&View==false &&detail::IsKnownIdentityOp< T, BinaryOperation >::value > > & > | operator+= (const _T &Partial) |
|
std::enable_if_t<(_Dims==0) &&IsMultiplies< _T, BinaryOp >::value, reducer< T, BinaryOperation, Dims, Extent, IdentityContainerT, View, std::enable_if_t< Dims==0 &&Extent==1 &&View==false &&detail::IsKnownIdentityOp< T, BinaryOperation >::value > > & > | operator*= (const _T &Partial) |
|
std::enable_if_t<(_Dims==0) &&IsBitOR< _T, BinaryOp >::value, reducer< T, BinaryOperation, Dims, Extent, IdentityContainerT, View, std::enable_if_t< Dims==0 &&Extent==1 &&View==false &&detail::IsKnownIdentityOp< T, BinaryOperation >::value > > & > | operator|= (const _T &Partial) |
|
std::enable_if_t<(_Dims==0) &&IsBitXOR< _T, BinaryOp >::value, reducer< T, BinaryOperation, Dims, Extent, IdentityContainerT, View, std::enable_if_t< Dims==0 &&Extent==1 &&View==false &&detail::IsKnownIdentityOp< T, BinaryOperation >::value > > & > | operator^= (const _T &Partial) |
|
std::enable_if_t<(_Dims==0) &&IsBitAND< _T, BinaryOp >::value, reducer< T, BinaryOperation, Dims, Extent, IdentityContainerT, View, std::enable_if_t< Dims==0 &&Extent==1 &&View==false &&detail::IsKnownIdentityOp< T, BinaryOperation >::value > > & > | operator&= (const _T &Partial) |
|
std::enable_if_t< BasicCheck< _T, Space, _BinaryOperation > &&(IsReduOptForFastAtomicFetch< _T, _BinaryOperation >::value||IsReduOptForAtomic64Op< _T, _BinaryOperation >::value) &&IsPlus< _T, _BinaryOperation >::value > | atomic_combine (_T *ReduVarPtr) const |
| Atomic ADD operation: *ReduVarPtr += MValue;. More...
|
|
std::enable_if_t< BasicCheck< _T, Space, _BinaryOperation > &&IsReduOptForFastAtomicFetch< _T, _BinaryOperation >::value &&IsBitOR< _T, _BinaryOperation >::value > | atomic_combine (_T *ReduVarPtr) const |
| Atomic BITWISE OR operation: *ReduVarPtr |= MValue;. More...
|
|
std::enable_if_t< BasicCheck< _T, Space, _BinaryOperation > &&IsReduOptForFastAtomicFetch< _T, _BinaryOperation >::value &&IsBitXOR< _T, _BinaryOperation >::value > | atomic_combine (_T *ReduVarPtr) const |
| Atomic BITWISE XOR operation: *ReduVarPtr ^= MValue;. More...
|
|
std::enable_if_t< std::is_same_v< remove_decoration_t< _T >, _T > &&IsReduOptForFastAtomicFetch< _T, _BinaryOperation >::value &&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...
|
|
std::enable_if_t< BasicCheck< _T, Space, _BinaryOperation > &&(IsReduOptForFastAtomicFetch< _T, _BinaryOperation >::value||IsReduOptForAtomic64Op< _T, _BinaryOperation >::value) &&IsMinimum< _T, _BinaryOperation >::value > | atomic_combine (_T *ReduVarPtr) const |
| Atomic MIN operation: *ReduVarPtr = sycl::minimum(*ReduVarPtr, MValue);. More...
|
|
std::enable_if_t< BasicCheck< _T, Space, _BinaryOperation > &&(IsReduOptForFastAtomicFetch< _T, _BinaryOperation >::value||IsReduOptForAtomic64Op< _T, _BinaryOperation >::value) &&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, typename IdentityContainerT, bool View>
class sycl::_V1::reducer< T, BinaryOperation, Dims, Extent, IdentityContainerT, View, std::enable_if_t< Dims==0 &&Extent==1 &&View==false &&detail::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 599 of file reduction.hpp.