39 #include "../thread/thread_load.cuh"
40 #include "../thread/thread_store.cuh"
41 #include "../util_namespace.cuh"
43 #if (THRUST_VERSION >= 100700)
45 #include <thrust/iterator/iterator_facade.h>
46 #include <thrust/iterator/iterator_traits.h>
47 #endif // THRUST_VERSION
95 typename OffsetT = ptrdiff_t>
107 #if (THRUST_VERSION >= 100700)
109 typedef typename thrust::detail::iterator_facade_category<
110 thrust::any_system_tag,
111 thrust::random_access_traversal_tag,
117 #endif // THRUST_VERSION
124 OffsetT pad[CUB_MAX(1, (16 /
sizeof(OffsetT) - 1))];
160 template <
typename Distance>
168 template <
typename Distance>
176 template <
typename Distance>
184 template <
typename Distance>
194 return offset - other.offset;
198 template <
typename Distance>
213 return (offset == rhs.offset) && ((val == rhs.val));
219 return (offset != rhs.offset) || (val!= rhs.val);
225 os <<
"[" << itr.val <<
"," << itr.offset <<
"]";