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>
48 #endif // THRUST_VERSION
106 typename Offset = ptrdiff_t>
118 #if (THRUST_VERSION >= 100700)
120 typedef typename thrust::detail::iterator_facade_category<
121 thrust::device_system_tag,
122 thrust::random_access_traversal_tag,
128 #endif // THRUST_VERSION
162 return ThreadLoad<MODIFIER>(ptr);
166 template <
typename Distance>
174 template <
typename Distance>
182 template <
typename Distance>
190 template <
typename Distance>
200 return ptr - other.ptr;
204 template <
typename Distance>
207 return ThreadLoad<MODIFIER>(ptr + n);
213 return &ThreadLoad<MODIFIER>(ptr);
219 return (ptr == rhs.ptr);
225 return (ptr != rhs.ptr);