39#include "../thread/thread_load.cuh"
40#include "../thread/thread_store.cuh"
41#include "../util_device.cuh"
42#include "../util_namespace.cuh"
44#if (THRUST_VERSION >= 100700)
46 #include <thrust/iterator/iterator_facade.h>
47 #include <thrust/iterator/iterator_traits.h>
114 typename ConversionOp,
115 typename InputIteratorT,
128#if (THRUST_VERSION >= 100700)
130 typedef typename thrust::detail::iterator_facade_category<
131 thrust::any_system_tag,
132 thrust::random_access_traversal_tag,
142 ConversionOp conversion_op;
143 InputIteratorT input_itr;
149 InputIteratorT input_itr,
150 ConversionOp conversion_op)
152 conversion_op(conversion_op),
174 return conversion_op(*input_itr);
178 template <
typename Distance>
181 self_type retval(input_itr + n, conversion_op);
186 template <
typename Distance>
194 template <
typename Distance>
197 self_type retval(input_itr - n, conversion_op);
202 template <
typename Distance>
212 return input_itr - other.input_itr;
216 template <
typename Distance>
219 return conversion_op(input_itr[n]);
225 return &conversion_op(*input_itr);
231 return (input_itr == rhs.input_itr);
237 return (input_itr != rhs.input_itr);
Optional outer namespace(s)
OffsetT OffsetT
[in] Total number of input data items