| #include <thrust/iterator/permutation_iterator.h> |
| #include <thrust/reduce.h> |
| #include <thrust/device_vector.h> |
| #include <iostream> |
|
|
| |
| |
|
|
| int main(void) |
| { |
| |
| thrust::device_vector<int> map(4); |
| map[0] = 3; |
| map[1] = 1; |
| map[2] = 0; |
| map[3] = 5; |
|
|
| |
| thrust::device_vector<int> source(6); |
| source[0] = 10; |
| source[1] = 20; |
| source[2] = 30; |
| source[3] = 40; |
| source[4] = 50; |
| source[5] = 60; |
|
|
| |
| |
| int sum = thrust::reduce(thrust::make_permutation_iterator(source.begin(), map.begin()), |
| thrust::make_permutation_iterator(source.begin(), map.end())); |
|
|
| |
| std::cout << "sum is " << sum << std::endl; |
|
|
| return 0; |
| } |
|
|