33 #include <thrust/device_vector.h>
34 #include <cub/cub.cuh>
74 template <
typename VectorType>
79 template <
typename PredicateIterator>
82 const PredicateIterator pred);
86 template <
typename PredicateIterator>
89 const PredicateIterator pred);
93 template <
typename Iterator>
96 const Iterator values);
101 template <
typename Iterator,
typename Headflags>
104 const Iterator values,
105 const Headflags flags);
114 template <
typename InputIterator,
typename BinaryOp>
115 typename std::iterator_traits<InputIterator>::value_type
reduce(
119 thrust::device_vector<uint8>& d_temp_storage);
129 template <
typename InputIterator,
typename OutputIterator,
typename BinaryOp>
133 OutputIterator d_out,
135 thrust::device_vector<uint8>& d_temp_storage);
146 template <
typename InputIterator,
typename OutputIterator,
typename BinaryOp,
typename Identity>
150 OutputIterator d_out,
153 thrust::device_vector<uint8>& d_temp_storage);
165 template <
typename InputIterator,
typename FlagsIterator,
typename OutputIterator>
169 FlagsIterator d_flags,
170 OutputIterator d_out,
171 thrust::device_vector<uint8>& d_temp_storage);
183 template <
typename InputIterator,
typename OutputIterator,
typename Predicate>
187 OutputIterator d_out,
188 const Predicate pred,
189 thrust::device_vector<uint8>& d_temp_storage);
201 template <
typename InputIterator,
typename OutputIterator,
typename CountIterator>
205 OutputIterator d_out,
206 CountIterator d_counts,
207 thrust::device_vector<uint8>& d_temp_storage);
221 template <
typename KeyIterator,
typename ValueIterator,
typename OutputKeyIterator,
typename OutputValueIterator,
typename ReductionOp>
224 KeyIterator d_keys_in,
225 ValueIterator d_values_in,
226 OutputKeyIterator d_keys_out,
227 OutputValueIterator d_values_out,
228 ReductionOp reduction_op,
229 thrust::device_vector<uint8>& d_temp_storage);