Takes a start index and extent as the range to iterate.
More...
#include <bolt/transform_reduce.h>
Go to the source code of this file.
|
namespace | bolt |
| Defining namespace for the Bolt project.
|
|
namespace | bolt::amp |
| Namespace containing AMP related data types and functions.
|
|
|
#define | VW 1 |
|
#define | BARRIER(W) |
|
#define | REDUCE_STEP(_IDX, _W) |
|
|
template<typename outputT , int Rank, typename UnaryFunction , typename BinaryFunction > |
outputT | bolt::amp::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 | bolt::amp::transform_reduce_range (concurrency::index< Rank > origin, concurrency::extent< Rank > ext, UnaryFunction transform_op, outputT init, BinaryFunction reduce_op) |
|
Takes a start index and extent as the range to iterate.
#define REDUCE_STEP |
( |
|
_IDX, |
|
|
|
_W |
|
) |
| |
Value:if (_IDX < _W) tiled_data[_IDX] = reduce_op(tiled_data[_IDX], tiled_data[_IDX+_W]); \
BARRIER(_W)