89 typedef size_t difference_type;
90 typedef size_t size_type;
91 typedef thrust::random_access_traversal_tag iterator_category;
93 typedef ::cuda::std::ptrdiff_t IndexType;
94 typedef detail::random_integer_functor<IndexType,T> IndexFunctor;
95 typedef typename thrust::counting_iterator<IndexType> CountingIterator;
96 typedef typename thrust::transform_iterator<IndexFunctor, CountingIterator, IndexType> RandomCountingIterator;
99 typedef typename detail::random_functor_type<T>::type Functor;
100 typedef typename thrust::transform_iterator<Functor, RandomCountingIterator, T> RandomTransformIterator;
101 typedef RandomTransformIterator iterator;
108 : random_counting_iterator(CountingIterator(0), IndexFunctor(seed)) {}
116 return RandomTransformIterator(random_counting_iterator, Functor());
127 return *(
begin() + n);
133 RandomCountingIterator random_counting_iterator;