Reduce-by-segment functor. More...
Reduce-by-segment functor.
Given two cub::KeyValuePair inputs a and b and a binary associative combining operator , an instance of this functor returns a cub::KeyValuePair whose f(const T &x, const T &y)key field is a.key + b.key, and whose value field is either b.value if b.key is non-zero, or f(a.value, b.value) otherwise.
ReduceBySegmentOp is an associative, non-commutative binary combining operator for input sequences of cub::KeyValuePair pairings. Such sequences are typically used to represent a segmented set of values to be reduced and a corresponding set of {0,1}-valued integer "head flags" demarcating the first value of each segment. < Binary reduction operator to apply to values
Definition at line 252 of file thread_operators.cuh.
Public Member Functions | |
| __host__ __device__ __forceinline__ | ReduceBySegmentOp () |
| Constructor. | |
| __host__ __device__ __forceinline__ | ReduceBySegmentOp (ReductionOpT op) |
| Constructor. | |
| template<typename KeyValuePairT > | |
| __host__ __device__ __forceinline__ KeyValuePairT | operator() (const KeyValuePairT &first, const KeyValuePairT &second) |
| Scan operator. | |
Data Fields | |
| ReductionOpT | op |
| Wrapped reduction operator. | |
|
inline |
Constructor.
Definition at line 258 of file thread_operators.cuh.
|
inline |
Constructor.
Definition at line 261 of file thread_operators.cuh.
|
inline |
Scan operator.
< KeyValuePair pairing of T (value) and OffsetT (head flag)
| first | First partial reduction |
| second | Second partial reduction |
Definition at line 265 of file thread_operators.cuh.
| ReductionOpT cub::ReduceBySegmentOp< ReductionOpT >::op |
Wrapped reduction operator.
Definition at line 255 of file thread_operators.cuh.