23#include <cusp/detail/config.h>
24#include <cusp/detail/execution_policy.h>
36template <
typename DerivedPolicy,
38void counting_sort(
const thrust::detail::execution_policy_base<DerivedPolicy> &exec,
40 typename ArrayType::value_type min,
41 typename ArrayType::value_type max);
92template <
typename ArrayType>
94 typename ArrayType::value_type min,
95 typename ArrayType::value_type max);
98template <
typename DerivedPolicy,
104 typename ArrayType1::value_type min,
105 typename ArrayType1::value_type max);
163template <
typename ArrayType1,
167 typename ArrayType1::value_type min,
168 typename ArrayType1::value_type max);
172template <
typename DerivedPolicy,
176void sort_by_row(
const thrust::detail::execution_policy_base<DerivedPolicy> &exec,
177 ArrayType1& row_indices,
178 ArrayType2& column_indices,
180 typename ArrayType1::value_type min_row = 0,
181 typename ArrayType1::value_type max_row = 0);
228template <
typename ArrayType1,
232 ArrayType2& column_indices,
234 typename ArrayType1::value_type min_row = 0,
235 typename ArrayType1::value_type max_row = 0);
238template <
typename DerivedPolicy,
243 ArrayType1& row_indices,
244 ArrayType2& column_indices,
246 typename ArrayType1::value_type min_row = 0,
247 typename ArrayType1::value_type max_row = 0,
248 typename ArrayType2::value_type min_col = 0,
249 typename ArrayType2::value_type max_col = 0);
299template <
typename ArrayType1,
303 ArrayType2& column_indices,
305 typename ArrayType1::value_type min_row = 0,
306 typename ArrayType1::value_type max_row = 0,
307 typename ArrayType2::value_type min_col = 0,
308 typename ArrayType2::value_type max_col = 0);
314#include <cusp/detail/sort.inl>
void counting_sort(ArrayType &keys, typename ArrayType::value_type min, typename ArrayType::value_type max)
Use counting sort to order an array.
void sort_by_row_and_column(ArrayType1 &row_indices, ArrayType2 &column_indices, ArrayType3 &values, typename ArrayType1::value_type min_row=0, typename ArrayType1::value_type max_row=0, typename ArrayType2::value_type min_col=0, typename ArrayType2::value_type max_col=0)
Sort matrix indices by row and column.
void sort_by_row(ArrayType1 &row_indices, ArrayType2 &column_indices, ArrayType3 &values, typename ArrayType1::value_type min_row=0, typename ArrayType1::value_type max_row=0)
Sort matrix indices by row.
void counting_sort_by_key(ArrayType1 &keys, ArrayType2 &vals, typename ArrayType1::value_type min, typename ArrayType1::value_type max)
Use counting sort to order an array and permute an array of values.