Closed GoogleCodeExporter closed 8 years ago
#include <cuda.h> #include <thrust/pair.h> #include <vector> #include <stdio.h> #include <stdlib.h> #include <time.h> #include <thrust/tuple.h> #include <thrust/device_ptr.h> #include <thrust/fill.h> #include <sys/time.h> #include <thrust/iterator/transform_iterator.h> #include <thrust/iterator/counting_iterator.h> #include <thrust/device_vector.h> #include <thrust/host_vector.h> #include <thrust/reduce.h> #include <thrust/functional.h> #include <iostream> #include <iterator> #include <string> #include <unittest/unittest.h> #include <unittest/testframework.h> #include <thrust/transform_scan.h> #include <thrust/adjacent_difference.h> #include <thrust/iterator/counting_iterator.h> #include <thrust/iterator/iterator_traits.h> #include <thrust/iterator/zip_iterator.h> struct make_pair_functor { template <typename T1, typename T2> __host__ __device__ thrust::pair<T1,T2> operator()(const T1 &x, const T2 &y) { return thrust::make_pair(x,y); } // end operator()() }; // end make_pair_functor struct add_pairs { template <typename Pair1, typename Pair2> __host__ __device__ Pair1 operator()(const Pair1 &x, const Pair2 &y) { return thrust::make_pair(x.first + y.first, x.second + y.second); } // end operator() }; // end add_pairs int main() { typedef thrust::pair<float,float> P; // zip up pairs on the host thrust::transform(d_vec.begin(), d_vec.end(), data.begin(), d_result.begin(), make_pair_functor()); thrust::device_vector<P> d_pairs = d_result; thrust::inclusive_scan(d_pairs.begin(), d_pairs.end(), d_result.begin(), add_pairs()); }
Original issue reported on code.google.com by vinitha....@gmail.com on 12 Nov 2010 at 6:46
vinitha....@gmail.com
Original comment by jaredhoberock on 12 Nov 2010 at 9:14
jaredhoberock
Original issue reported on code.google.com by
vinitha....@gmail.com
on 12 Nov 2010 at 6:46