thrust::transform_inclusive_scan
Defined in thrust/transform_scan.h
- 
template<typename InputIterator, typename OutputIterator, typename UnaryFunction, typename AssociativeOperator>
 OutputIterator thrust::transform_inclusive_scan(InputIterator first, InputIterator last, OutputIterator result, UnaryFunction unary_op, AssociativeOperator binary_op)
- transform_inclusive_scanfuses the- transformand- inclusive_scanoperations.- transform_inclusive_scanis equivalent to performing a transformation defined by- unary_opinto a temporary sequence and then performing an- inclusive_scanon the transformed sequence. In most cases, fusing these two operations together is more efficient, since fewer memory reads and writes are required. In- transform_inclusive_scan,- unary_op(*first)is assigned to- *resultand the result of- binary_op(unary_op(*first), unary_op(*(first + 1)))is assigned to- *(result + 1), and so on. The transform scan operation is permitted to be in-place.- The following code snippet demonstrates how to use - transform_inclusive_scan- #include <thrust/transform_scan.h> int data[6] = {1, 0, 2, 2, 1, 3}; thrust::negate<int> unary_op; thrust::plus<int> binary_op; thrust::transform_inclusive_scan(data, data + 6, data, unary_op, binary_op); // in-place scan // data is now {-1, -1, -3, -5, -6, -9} - See also - transform- See also - inclusive_scan- Parameters
- first – The beginning of the input sequence. 
- last – The end of the input sequence. 
- result – The beginning of the output sequence. 
- unary_op – The function used to transform the input sequence. 
- binary_op – The associative operator used to ‘sum’ transformed values. 
 
- Template Parameters
- InputIterator – is a model of Input Iterator and - InputIterator's- value_typeis convertible to- unary_op'sinput type.
- OutputIterator – is a model of Output Iterator. 
- UnaryFunction – accepts inputs of - InputIterator's- value_type. The function’s return type is convertible to- OutputIterator's- value_type.
- AssociativeOperator – is a binary function and the function’s return type must be convertible to - OutputIterator's- value_type.
 
- Returns
- The end of the output sequence. 
- Pre
- firstmay equal- result, but the range- [first, last)and the range- [result, result + (last - first))shall not overlap otherwise.