Template Function thrust::sequence(ForwardIterator, ForwardIterator, T, T)

Function Documentation

template<typename ForwardIterator, typename T>
void thrust::sequence(ForwardIterator first, ForwardIterator last, T init, T step)

sequence fills the range [first, last) with a sequence of numbers.

For each iterator i in the range [first, last), this version of sequence performs the assignment *i = init + step * (i - first).

The following code snippet demonstrates how to use

sequence to fill a range with a sequence of numbers starting from the value 1 with a step size of 3.
Parameters
  • first: The beginning of the sequence.

  • last: The end of the sequence.

  • init: The first value of the sequence of numbers

  • step: The difference between consecutive elements.

Template Parameters
  • ForwardIterator: is a model of Forward Iterator, and ForwardIterator is mutable, and if x and y are objects of ForwardIterator's value_type, then x + y is defined, and if T is ForwardIterator's value_type, then T(0) is defined.

  • T: is a model of Assignable, and T is convertible to ForwardIterator's value_type.

#include <thrust/sequence.h>
...
const int N = 10;
int A[N];
thrust::sequence(A, A + 10, 1, 3);
// A is now {1, 4, 7, 10, 13, 16, 19, 22, 25, 28}

Note

Unlike the similar C++ STL function std::iota, sequence offers no guarantee on order of execution.

See

http://www.sgi.com/tech/stl/iota.html