thrust::tabulate
Defined in thrust/tabulate.h
-
template<typename DerivedPolicy, typename ForwardIterator, typename UnaryOperation>
void thrust::tabulate(const thrust::detail::execution_policy_base<DerivedPolicy> &exec, ForwardIterator first, ForwardIterator last, UnaryOperation unary_op) tabulate
fills the range[first, last)
with the value of a function applied to each element’s index.For each iterator
i
in the range[first, last)
,tabulate
performs the assignment*i = unary_op(i - first)
.The algorithm’s execution is parallelized as determined by
exec
.The following code snippet demonstrates how to use
tabulate
to generate the firstn
non-positive integers using thethrust::host
execution policy for parallelization:#include <thrust/tabulate.h> #include <thrust/functional.h> #include <thrust/execution_policy.h> ... const int N = 10; int A[N]; thrust::tabulate(thrust::host, A, A + 10, thrust::negate<int>()); // A is now {0, -1, -2, -3, -4, -5, -6, -7, -8, -9}
See also
thrust::fill
See also
thrust::generate
See also
thrust::sequence
- Parameters
exec – The execution policy to use for parallelization.
first – The beginning of the range.
last – The end of the range.
unary_op – The unary operation to apply.
- Template Parameters
DerivedPolicy – The name of the derived execution policy.
ForwardIterator – is a model of Forward Iterator, and
ForwardIterator
is mutable, and ifx
andy
are objects ofForwardIterator's
value_type
, thenx + y
is defined, and ifT
isForwardIterator's
value_type
, thenT(0)
is defined.UnaryOperation – is a model of Unary Function and
UnaryFunction's
result_type
is convertible toOutputIterator's
value_type
.