Bolt  1.1
C++ template library with support for OpenCL
Classes | Functions
bolt::amp Namespace Reference

Namespace containing AMP related data types and functions. More...

Classes

class  control
 
struct  device_vector_tag
 
class  device_vector
 This defines the AMP version of a device_vector. More...
 
struct  unary_function
 
struct  binary_function
 
struct  square
 
struct  cube
 
struct  negate
 
struct  plus
 
struct  minus
 
struct  multiplies
 
struct  divides
 
struct  maximum
 
struct  minimum
 
struct  modulus
 
struct  bit_and
 
struct  bit_or
 
struct  bit_xor
 
struct  logical_not
 
struct  equal_to
 
struct  not_equal_to
 
struct  greater
 
struct  less
 
struct  greater_equal
 
struct  less_equal
 
struct  logical_and
 
struct  logical_or
 
struct  iterator_traits
 
struct  iterator_traits< T * >
 
struct  iterator_traits< const T * >
 

Functions

void getVersion (unsigned int &major, unsigned int &minor, unsigned int &patch)
 Query the Bolt library for version information.
 
template<typename InputIterator , typename EqualityComparable >
bolt::amp::iterator_traits
< InputIterator >
::difference_type 
count (control &ctl, InputIterator first, InputIterator last, const EqualityComparable &value)
 count counts the number of elements in the specified range which compare equal to the specified value.
 
template<typename InputIterator , typename EqualityComparable >
bolt::amp::iterator_traits
< InputIterator >
::difference_type 
count (InputIterator first, InputIterator last, const EqualityComparable &value)
 
template<typename InputIterator , typename Predicate >
bolt::amp::iterator_traits
< InputIterator >
::difference_type 
count_if (control &ctl, InputIterator first, InputIterator last, Predicate predicate=bolt::amp::detail::CountIfEqual< int >())
 count_if counts the number of elements in the specified range for which the specified predicate is true.
 
template<typename InputIterator , typename Predicate >
bolt::amp::iterator_traits
< InputIterator >
::difference_type 
count_if (InputIterator first, InputIterator last, Predicate predicate)
 
template<typename InputIterator >
std::iterator_traits
< InputIterator >::value_type 
reduce (bolt::amp::control &ctl, InputIterator first, InputIterator last)
 reduce returns the result of combining all the elements in the specified range using the specified binary_op. The classic example is a summation, where the binary_op is the plus operator. By default, the initial value is "0" and the binary operator is "plus<>()".
 
template<typename InputIterator >
std::iterator_traits
< InputIterator >::value_type 
reduce (InputIterator first, InputIterator last)
 
template<typename InputIterator , typename T >
reduce (bolt::amp::control &ctl, InputIterator first, InputIterator last, T init)
 reduce returns the result of combining all the elements in the specified range using the specified binary_op. The classic example is a summation, where the binary_op is the plus operator. By default, the initial value is "0" and the binary operator is "plus<>()".
 
template<typename InputIterator , typename T >
reduce (InputIterator first, InputIterator last, T init)
 
template<typename InputIterator , typename T , typename BinaryFunction >
reduce (bolt::amp::control &ctl, InputIterator first, InputIterator last, T init, BinaryFunction binary_op=bolt::amp::plus< T >())
 reduce returns the result of combining all the elements in the specified range using the specified binary_op. The classic example is a summation, where the binary_op is the plus operator. By default, the binary operator is "plus<>()". The version takes a bolt::amp::control structure as a first argument.
 
template<typename InputIterator , typename T , typename BinaryFunction >
reduce (InputIterator first, InputIterator last, T init, BinaryFunction binary_op)
 
template<typename InputIterator , typename OutputIterator >
OutputIterator 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 inclusive_scan (InputIterator first, InputIterator last, OutputIterator result)
 
template<typename InputIterator , typename OutputIterator , typename BinaryFunction >
OutputIterator 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 inclusive_scan (InputIterator first, InputIterator last, OutputIterator result, BinaryFunction binary_op)
 
template<typename InputIterator , typename OutputIterator >
OutputIterator 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 exclusive_scan (InputIterator first, InputIterator last, OutputIterator result)
 
template<typename InputIterator , typename OutputIterator , typename T >
OutputIterator 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 exclusive_scan (InputIterator first, InputIterator last, OutputIterator result, T init)
 
template<typename InputIterator , typename OutputIterator , typename T , typename BinaryFunction >
OutputIterator 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 exclusive_scan (InputIterator first, InputIterator last, OutputIterator result, T init, BinaryFunction binary_op)
 
template<typename RandomAccessIterator >
void sort (bolt::amp::control &ctl, RandomAccessIterator first, RandomAccessIterator last)
 
template<typename RandomAccessIterator >
void sort (RandomAccessIterator first, RandomAccessIterator last)
 
template<typename RandomAccessIterator , typename StrictWeakOrdering >
void sort (bolt::amp::control &ctl, RandomAccessIterator first, RandomAccessIterator last, StrictWeakOrdering comp)
 
template<typename RandomAccessIterator , typename StrictWeakOrdering >
void sort (RandomAccessIterator first, RandomAccessIterator last, StrictWeakOrdering comp)
 
template<typename InputIterator , typename OutputIterator , typename UnaryFunction >
void transform (control &ctl, InputIterator first, InputIterator last, OutputIterator result, UnaryFunction op)
 
template<typename InputIterator , typename OutputIterator , typename UnaryFunction >
void transform (InputIterator first, InputIterator last, OutputIterator result, UnaryFunction op)
 
template<typename InputIterator1 , typename InputIterator2 , typename OutputIterator , typename BinaryFunction >
void transform (control &ctl, InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, OutputIterator result, BinaryFunction op)
 
template<typename InputIterator1 , typename InputIterator2 , typename OutputIterator , typename BinaryFunction >
void transform (InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, OutputIterator result, BinaryFunction op)
 
template<typename InputIterator , typename UnaryFunction , typename T , typename BinaryFunction >
transform_reduce (InputIterator first, InputIterator last, UnaryFunction transform_op, T init, BinaryFunction reduce_op)
 transform_reduce fuses transform and reduce operations together, increasing performance by reducing memory passes.
 
template<typename InputIterator , typename UnaryFunction , typename T , typename BinaryFunction >
transform_reduce (control &ctl, InputIterator first1, InputIterator last1, UnaryFunction transform_op, T init, BinaryFunction reduce_op)
 transform_reduce fuses transform and reduce operations together, increasing performance by reducing memory passes.
 
template<typename outputT , int Rank, typename UnaryFunction , typename BinaryFunction >
outputT transform_reduce_range (concurrency::accelerator_view av, concurrency::index< Rank > origin, concurrency::extent< Rank > ext, UnaryFunction transform_op, outputT init, BinaryFunction reduce_op)
 
template<typename outputT , int Rank, typename UnaryFunction , typename BinaryFunction >
outputT transform_reduce_range (concurrency::index< Rank > origin, concurrency::extent< Rank > ext, UnaryFunction transform_op, outputT init, BinaryFunction reduce_op)
 

Detailed Description

Namespace containing AMP related data types and functions.

Function Documentation

void bolt::amp::getVersion ( unsigned int &  major,
unsigned int &  minor,
unsigned int &  patch 
)

Query the Bolt library for version information.

Return the major, minor and patch version numbers associated with the Bolt library

Parameters
[out]majorMajor functionality change
[out]minorMinor functionality change
[out]patchBug fixes, documentation changes, no new features introduced