36#include "../thread/thread_operators.cuh"
37#include "../util_namespace.cuh"
72 for (
int i = 0; i < LENGTH; ++i)
74 inclusive =
scan_op(exclusive, input[i]);
75 output[i] = exclusive;
76 exclusive = inclusive;
100 bool apply_prefix =
true)
102 T inclusive = input[0];
105 inclusive =
scan_op(prefix, inclusive);
108 T exclusive = inclusive;
130 bool apply_prefix =
true)
132 return ThreadScanExclusive<LENGTH>((T*) input, (T*) output,
scan_op, prefix, apply_prefix);
155 for (
int i = 0; i < LENGTH; ++i)
157 inclusive =
scan_op(inclusive, input[i]);
158 output[i] = inclusive;
181 T inclusive = input[0];
182 output[0] = inclusive;
205 return ThreadScanInclusive<LENGTH>((T*) input, (T*) output,
scan_op);
225 bool apply_prefix =
true)
227 T inclusive = input[0];
230 inclusive =
scan_op(prefix, inclusive);
232 output[0] = inclusive;
255 bool apply_prefix =
true)
257 return ThreadScanInclusive<LENGTH>((T*) input, (T*) output,
scan_op, prefix, apply_prefix);
__device__ __forceinline__ T ThreadScanExclusive(T inclusive, T exclusive, T *input, T *output, ScanOp scan_op, Int2Type< LENGTH >)
__device__ __forceinline__ T ThreadScanInclusive(T inclusive, T *input, T *output, ScanOp scan_op, Int2Type< LENGTH >)
Optional outer namespace(s)
OutputIteratorT ScanTileStateT int ScanOpT scan_op
Binary scan functor.
Allows for the treatment of an integral constant as a type at compile-time (e.g., to achieve static c...