Bolt  1.3
C++ template library with support for OpenCL
Namespaces | Functions
scan.h File Reference

Scan calculates a running sum over a range of values, inclusive or exclusive. More...

#include <bolt/amp/bolt.h>
#include <bolt/amp/detail/scan.inl>

Go to the source code of this file.

Namespaces

namespace  bolt
 Defining namespace for the Bolt project.
 
namespace  bolt::amp
 Namespace containing AMP related data types and functions.
 

Functions

template<typename InputIterator , typename OutputIterator >
OutputIterator bolt::amp::inclusive_scan (control &ctl, InputIterator first, InputIterator last, OutputIterator result)
 inclusive_scan calculates a running sum over a range of values, inclusive of the current value. The result value at iterator position i is the running sum of all values less than i in the input range. inclusive_scan requires associativity of the binary operation to parallelize the prefix sum.
 
template<typename InputIterator , typename OutputIterator >
OutputIterator bolt::amp::inclusive_scan (InputIterator first, InputIterator last, OutputIterator result)
 
template<typename InputIterator , typename OutputIterator , typename BinaryFunction >
OutputIterator bolt::amp::inclusive_scan (control &ctl, InputIterator first, InputIterator last, OutputIterator result, BinaryFunction binary_op)
 inclusive_scan calculates a running sum over a range of values, inclusive of the current value. The result value at iterator position i is the running sum of all values less than i in the input range. inclusive_scan requires associativity of the binary operation to parallelize the prefix sum.
 
template<typename InputIterator , typename OutputIterator , typename BinaryFunction >
OutputIterator bolt::amp::inclusive_scan (InputIterator first, InputIterator last, OutputIterator result, BinaryFunction binary_op)
 
template<typename InputIterator , typename OutputIterator >
OutputIterator bolt::amp::exclusive_scan (control &ctl, InputIterator first, InputIterator last, OutputIterator result)
 exclusive_scan calculates a running sum over a range of values, exclusive of the current value. The result value at iterator position i is the running sum of all values less than i in the input range. exclusive_scan requires associativity of the binary operation to parallelize it.
 
template<typename InputIterator , typename OutputIterator >
OutputIterator bolt::amp::exclusive_scan (InputIterator first, InputIterator last, OutputIterator result)
 
template<typename InputIterator , typename OutputIterator , typename T >
OutputIterator bolt::amp::exclusive_scan (control &ctl, InputIterator first, InputIterator last, OutputIterator result, T init)
 exclusive_scan calculates a running sum over a range of values, exclusive of the current value. The result value at iterator position i is the running sum of all values less than i in the input range. exclusive_scan requires associativity of the binary operation to parallelize it.
 
template<typename InputIterator , typename OutputIterator , typename T >
OutputIterator bolt::amp::exclusive_scan (InputIterator first, InputIterator last, OutputIterator result, T init)
 
template<typename InputIterator , typename OutputIterator , typename T , typename BinaryFunction >
OutputIterator bolt::amp::exclusive_scan (control &ctl, InputIterator first, InputIterator last, OutputIterator result, T init, BinaryFunction binary_op)
 exclusive_scan calculates a running sum over a range of values, exclusive of the current value. The result value at iterator position i is the running sum of all values less than i in the input range. exclusive_scan requires associativity of the binary operation to parallelize it.
 
template<typename InputIterator , typename OutputIterator , typename T , typename BinaryFunction >
OutputIterator bolt::amp::exclusive_scan (InputIterator first, InputIterator last, OutputIterator result, T init, BinaryFunction binary_op)
 

Detailed Description

Scan calculates a running sum over a range of values, inclusive or exclusive.