Scan#
Exclusive Scan#
- group Thread Exclusive Scan Functions
- Functions - 
template<int LENGTH, typename T, typename ScanOp>
 __device__ inline T thread_scan_exclusive(T inclusive, T exclusive, T *input, T *output, ScanOp scan_op, Int2Type<LENGTH>)#
- Perform a sequential exclusive prefix scan over - LENGTHelements of the- inputarray. The aggregate is returned.- Template Parameters:
- LENGTH – Length of - inputand- outputarrays
- T – [inferred] The data type to be scanned. 
- ScanOp – [inferred] Binary scan operator type having member - T operator()(const T &a, const T &b)
 
- Parameters:
- inclusive – [in] Initial value for inclusive aggregate 
- exclusive – [in] Initial value for exclusive aggregate 
- input – [in] Input array 
- output – [out] Output array (may be aliased to - input)
- scan_op – [in] Binary scan operator 
 
- Returns:
- Aggregate of the scan 
 
 - 
template<int LENGTH, typename T, typename ScanOp>
 __device__ inline T thread_scan_exclusive(T *input, T *output, ScanOp scan_op, T prefix, bool apply_prefix = true)#
- Perform a sequential exclusive prefix scan over - LENGTHelements of the- inputarray. The aggregate is returned.- Template Parameters:
- LENGTH – Length of - inputand- outputarrays
- T – [inferred] The data type to be scanned. 
- ScanOp – [inferred] Binary scan operator type having member - T operator()(const T &a, const T &b)
 
- Parameters:
- input – [in] Input array 
- output – [out] Output array (may be aliased to - input)
- scan_op – [in] Binary scan operator 
- prefix – [in] Prefix to seed scan with 
- apply_prefix – [in] Whether or not the calling thread should apply its prefix. (Handy for preventing thread-0 from applying a prefix.) 
 
- Returns:
- Aggregate of the scan 
 
 - 
template<int LENGTH, typename T, typename ScanOp>
 __device__ inline T thread_scan_exclusive(T (&input)[LENGTH], T (&output)[LENGTH], ScanOp scan_op, T prefix, bool apply_prefix = true)#
- Perform a sequential exclusive prefix scan over - LENGTHelements of the- inputarray. The aggregate is returned.- Template Parameters:
- LENGTH – Length of - inputand- outputarrays
- T – [inferred] The data type to be scanned. 
- ScanOp – [inferred] Binary scan operator type having member - T operator()(const T &a, const T &b)
 
- Parameters:
- input – [in] Input array 
- output – [out] Output array (may be aliased to - input)
- scan_op – [in] Binary scan operator 
- prefix – [in] Prefix to seed scan with 
- apply_prefix – [in] Whether or not the calling thread should apply its prefix. (Handy for preventing thread-0 from applying a prefix.) 
 
- Returns:
- Aggregate of the scan 
 
 
- 
template<int LENGTH, typename T, typename ScanOp>
Inclusive Scan#
- group Thread Inclusive Scan Functions
- Functions - 
template<int LENGTH, typename T, typename ScanOp>
 __device__ inline T thread_scan_inclusive(T inclusive, T *input, T *output, ScanOp scan_op, Int2Type<LENGTH>)#
- Perform a sequential exclusive prefix scan over - LENGTHelements of the- inputarray. The aggregate is returned.- Template Parameters:
- LENGTH – Length of - inputand- outputarrays
- T – [inferred] The data type to be scanned. 
- ScanOp – [inferred] Binary scan operator type having member - T operator()(const T &a, const T &b)
 
- Parameters:
- inclusive – [in] Initial value for inclusive aggregate 
- input – [in] Input array 
- output – [out] Output array (may be aliased to - input)
- scan_op – [in] Binary scan operator 
 
- Returns:
- Aggregate of the scan 
 
 - 
template<int LENGTH, typename T, typename ScanOp>
 __device__ inline T thread_scan_inclusive(T *input, T *output, ScanOp scan_op)#
- Perform a sequential inclusive prefix scan over - LENGTHelements of the- inputarray. The aggregate is returned.- Template Parameters:
- LENGTH – LengthT of - inputand- outputarrays
- T – [inferred] The data type to be scanned. 
- ScanOp – [inferred] Binary scan operator type having member - T operator()(const T &a, const T &b)
 
- Parameters:
- input – [in] Input array 
- output – [out] Output array (may be aliased to - input)
- scan_op – [in] Binary scan operator 
 
- Returns:
- Aggregate of the scan 
 
 - 
template<int LENGTH, typename T, typename ScanOp>
 __device__ inline T thread_scan_inclusive(T (&input)[LENGTH], T (&output)[LENGTH], ScanOp scan_op)#
- Perform a sequential inclusive prefix scan over - LENGTHelements of the- inputarray. The aggregate is returned.- Template Parameters:
- LENGTH – LengthT of - inputand- outputarrays
- T – [inferred] The data type to be scanned. 
- ScanOp – [inferred] Binary scan operator type having member - T operator()(const T &a, const T &b)
 
- Parameters:
- input – [in] Input array 
- output – [out] Output array (may be aliased to - input)
- scan_op – [in] Binary scan operator 
 
- Returns:
- Aggregate of the scan 
 
 - 
template<int LENGTH, typename T, typename ScanOp>
 __device__ inline T thread_scan_inclusive(T *input, T *output, ScanOp scan_op, T prefix, bool apply_prefix = true)#
- Perform a sequential inclusive prefix scan over - LENGTHelements of the- inputarray. The aggregate is returned.- Template Parameters:
- LENGTH – LengthT of - inputand- outputarrays
- T – [inferred] The data type to be scanned. 
- ScanOp – [inferred] Binary scan operator type having member - T operator()(const T &a, const T &b)
 
- Parameters:
- input – [in] Input array 
- output – [out] Output array (may be aliased to - input)
- scan_op – [in] Binary scan operator 
- prefix – [in] Prefix to seed scan with 
- apply_prefix – [in] Whether or not the calling thread should apply its prefix. (Handy for preventing thread-0 from applying a prefix.) 
 
- Returns:
- Aggregate of the scan 
 
 - 
template<int LENGTH, typename T, typename ScanOp>
 __device__ inline T thread_scan_inclusive(T (&input)[LENGTH], T (&output)[LENGTH], ScanOp scan_op, T prefix, bool apply_prefix = true)#
- Perform a sequential inclusive prefix scan over - LENGTHelements of the- inputarray. The aggregate is returned.- Template Parameters:
- LENGTH – LengthT of - inputand- outputarrays
- T – [inferred] The data type to be scanned. 
- ScanOp – [inferred] Binary scan operator type having member - T operator()(const T &a, const T &b)
 
- Parameters:
- input – [in] Input array 
- output – [out] Output array (may be aliased to - input)
- scan_op – [in] Binary scan operator 
- prefix – [in] Prefix to seed scan with 
- apply_prefix – [in] Whether or not the calling thread should apply its prefix. (Handy for preventing thread-0 from applying a prefix.) 
 
- Returns:
- Aggregate of the scan 
 
 
- 
template<int LENGTH, typename T, typename ScanOp>