Function transform_reduce

| Home | Libraries | People | FAQ | More

## Function transform_reduce

boost::compute::transform_reduce

## Synopsis

    // In header: <boost/compute/algorithm/transform_reduce.hpp>

    template<typename InputIterator, typename OutputIterator,
             typename UnaryTransformFunction, typename BinaryReduceFunction>
      void transform_reduce(InputIterator first, InputIterator last,
                            OutputIterator result,
                            UnaryTransformFunction transform_function,
                            BinaryReduceFunction reduce_function,
                            command_queue & queue = system::default_queue());
    template<typename InputIterator1, typename InputIterator2,
             typename OutputIterator, typename BinaryTransformFunction,
             typename BinaryReduceFunction>
      void transform_reduce(InputIterator1 first1, InputIterator1 last1,
                            InputIterator2 first2, OutputIterator result,
                            BinaryTransformFunction transform_function,
                            BinaryReduceFunction reduce_function,
                            command_queue & queue = system::default_queue());

## Description

Transforms each value in the range [`first`, `last`) with the unary `transform_function` and then reduces each transformed value with `reduce_function`.

For example, to calculate the sum of the absolute values of a vector of integers:

    int sum = 0;
    boost::compute::transform_reduce(
        vec.begin(), vec.end(), &sum, abs<int>(), plus<int>(), queue
    );

See Also:

reduce(), inner_product()