@@ -8,19 +8,26 @@ namespace xss {
8
8
namespace avx512 {
9
9
// quicksort
10
10
template <typename T>
11
- XSS_HIDE_SYMBOL void qsort (T *arr, size_t arrsize, bool hasnan = false );
11
+ XSS_HIDE_SYMBOL void
12
+ qsort (T *arr, size_t arrsize, bool hasnan = false , bool descending = false );
12
13
// key-value quicksort
13
14
template <typename T1, typename T2>
14
15
XSS_EXPORT_SYMBOL void
15
16
keyvalue_qsort (T1 *key, T2 *val, size_t arrsize, bool hasnan = false );
16
17
// quickselect
17
18
template <typename T>
18
- XSS_HIDE_SYMBOL void
19
- qselect (T *arr, size_t k, size_t arrsize, bool hasnan = false );
19
+ XSS_HIDE_SYMBOL void qselect (T *arr,
20
+ size_t k,
21
+ size_t arrsize,
22
+ bool hasnan = false ,
23
+ bool descending = false );
20
24
// partial sort
21
25
template <typename T>
22
- XSS_HIDE_SYMBOL void
23
- partial_qsort (T *arr, size_t k, size_t arrsize, bool hasnan = false );
26
+ XSS_HIDE_SYMBOL void partial_qsort (T *arr,
27
+ size_t k,
28
+ size_t arrsize,
29
+ bool hasnan = false ,
30
+ bool descending = false );
24
31
// argsort
25
32
template <typename T>
26
33
XSS_HIDE_SYMBOL std::vector<size_t >
@@ -33,19 +40,26 @@ namespace avx512 {
33
40
namespace avx2 {
34
41
// quicksort
35
42
template <typename T>
36
- XSS_HIDE_SYMBOL void qsort (T *arr, size_t arrsize, bool hasnan = false );
43
+ XSS_HIDE_SYMBOL void
44
+ qsort (T *arr, size_t arrsize, bool hasnan = false , bool descending = false );
37
45
// key-value quicksort
38
46
template <typename T1, typename T2>
39
47
XSS_EXPORT_SYMBOL void
40
48
keyvalue_qsort (T1 *key, T2 *val, size_t arrsize, bool hasnan = false );
41
49
// quickselect
42
50
template <typename T>
43
- XSS_HIDE_SYMBOL void
44
- qselect (T *arr, size_t k, size_t arrsize, bool hasnan = false );
51
+ XSS_HIDE_SYMBOL void qselect (T *arr,
52
+ size_t k,
53
+ size_t arrsize,
54
+ bool hasnan = false ,
55
+ bool descending = false );
45
56
// partial sort
46
57
template <typename T>
47
- XSS_HIDE_SYMBOL void
48
- partial_qsort (T *arr, size_t k, size_t arrsize, bool hasnan = false );
58
+ XSS_HIDE_SYMBOL void partial_qsort (T *arr,
59
+ size_t k,
60
+ size_t arrsize,
61
+ bool hasnan = false ,
62
+ bool descending = false );
49
63
// argsort
50
64
template <typename T>
51
65
XSS_HIDE_SYMBOL std::vector<size_t >
@@ -58,19 +72,26 @@ namespace avx2 {
58
72
namespace scalar {
59
73
// quicksort
60
74
template <typename T>
61
- XSS_HIDE_SYMBOL void qsort (T *arr, size_t arrsize, bool hasnan = false );
75
+ XSS_HIDE_SYMBOL void
76
+ qsort (T *arr, size_t arrsize, bool hasnan = false , bool descending = false );
62
77
// key-value quicksort
63
78
template <typename T1, typename T2>
64
79
XSS_EXPORT_SYMBOL void
65
80
keyvalue_qsort (T1 *key, T2 *val, size_t arrsize, bool hasnan = false );
66
81
// quickselect
67
82
template <typename T>
68
- XSS_HIDE_SYMBOL void
69
- qselect (T *arr, size_t k, size_t arrsize, bool hasnan = false );
83
+ XSS_HIDE_SYMBOL void qselect (T *arr,
84
+ size_t k,
85
+ size_t arrsize,
86
+ bool hasnan = false ,
87
+ bool descending = false );
70
88
// partial sort
71
89
template <typename T>
72
- XSS_HIDE_SYMBOL void
73
- partial_qsort (T *arr, size_t k, size_t arrsize, bool hasnan = false );
90
+ XSS_HIDE_SYMBOL void partial_qsort (T *arr,
91
+ size_t k,
92
+ size_t arrsize,
93
+ bool hasnan = false ,
94
+ bool descending = false );
74
95
// argsort
75
96
template <typename T>
76
97
XSS_HIDE_SYMBOL std::vector<size_t >
0 commit comments