@@ -12,22 +12,41 @@ namespace avx512 {
1212 qsort (T *arr, size_t arrsize, bool hasnan = false , bool descending = false );
1313 // key-value quicksort
1414 template <typename T1, typename T2>
15- XSS_HIDE_SYMBOL void
16- keyvalue_qsort (T1 *key, T2 *val, size_t arrsize, bool hasnan = false );
15+ XSS_HIDE_SYMBOL void keyvalue_qsort (T1 *key,
16+ T2 *val,
17+ size_t arrsize,
18+ bool hasnan = false ,
19+ bool descending = false );
1720 // quickselect
1821 template <typename T>
1922 XSS_HIDE_SYMBOL void qselect (T *arr,
2023 size_t k,
2124 size_t arrsize,
2225 bool hasnan = false ,
2326 bool descending = false );
27+ // key-value select
28+ template <typename T1, typename T2>
29+ XSS_HIDE_SYMBOL void keyvalue_select (T1 *key,
30+ T2 *val,
31+ size_t k,
32+ size_t arrsize,
33+ bool hasnan = false ,
34+ bool descending = false );
2435 // partial sort
2536 template <typename T>
2637 XSS_HIDE_SYMBOL void partial_qsort (T *arr,
2738 size_t k,
2839 size_t arrsize,
2940 bool hasnan = false ,
3041 bool descending = false );
42+ // key-value partial sort
43+ template <typename T1, typename T2>
44+ XSS_HIDE_SYMBOL void keyvalue_partial_sort (T1 *key,
45+ T2 *val,
46+ size_t k,
47+ size_t arrsize,
48+ bool hasnan = false ,
49+ bool descending = false );
3150 // argsort
3251 template <typename T>
3352 XSS_HIDE_SYMBOL std::vector<size_t > argsort (T *arr,
@@ -46,22 +65,41 @@ namespace avx2 {
4665 qsort (T *arr, size_t arrsize, bool hasnan = false , bool descending = false );
4766 // key-value quicksort
4867 template <typename T1, typename T2>
49- XSS_HIDE_SYMBOL void
50- keyvalue_qsort (T1 *key, T2 *val, size_t arrsize, bool hasnan = false );
68+ XSS_HIDE_SYMBOL void keyvalue_qsort (T1 *key,
69+ T2 *val,
70+ size_t arrsize,
71+ bool hasnan = false ,
72+ bool descending = false );
5173 // quickselect
5274 template <typename T>
5375 XSS_HIDE_SYMBOL void qselect (T *arr,
5476 size_t k,
5577 size_t arrsize,
5678 bool hasnan = false ,
5779 bool descending = false );
80+ // key-value select
81+ template <typename T1, typename T2>
82+ XSS_HIDE_SYMBOL void keyvalue_select (T1 *key,
83+ T2 *val,
84+ size_t k,
85+ size_t arrsize,
86+ bool hasnan = false ,
87+ bool descending = false );
5888 // partial sort
5989 template <typename T>
6090 XSS_HIDE_SYMBOL void partial_qsort (T *arr,
6191 size_t k,
6292 size_t arrsize,
6393 bool hasnan = false ,
6494 bool descending = false );
95+ // key-value partial sort
96+ template <typename T1, typename T2>
97+ XSS_HIDE_SYMBOL void keyvalue_partial_sort (T1 *key,
98+ T2 *val,
99+ size_t k,
100+ size_t arrsize,
101+ bool hasnan = false ,
102+ bool descending = false );
65103 // argsort
66104 template <typename T>
67105 XSS_HIDE_SYMBOL std::vector<size_t > argsort (T *arr,
@@ -80,22 +118,41 @@ namespace scalar {
80118 qsort (T *arr, size_t arrsize, bool hasnan = false , bool descending = false );
81119 // key-value quicksort
82120 template <typename T1, typename T2>
83- XSS_HIDE_SYMBOL void
84- keyvalue_qsort (T1 *key, T2 *val, size_t arrsize, bool hasnan = false );
121+ XSS_HIDE_SYMBOL void keyvalue_qsort (T1 *key,
122+ T2 *val,
123+ size_t arrsize,
124+ bool hasnan = false ,
125+ bool descending = false );
85126 // quickselect
86127 template <typename T>
87128 XSS_HIDE_SYMBOL void qselect (T *arr,
88129 size_t k,
89130 size_t arrsize,
90131 bool hasnan = false ,
91132 bool descending = false );
133+ // key-value select
134+ template <typename T1, typename T2>
135+ XSS_HIDE_SYMBOL void keyvalue_select (T1 *key,
136+ T2 *val,
137+ size_t k,
138+ size_t arrsize,
139+ bool hasnan = false ,
140+ bool descending = false );
92141 // partial sort
93142 template <typename T>
94143 XSS_HIDE_SYMBOL void partial_qsort (T *arr,
95144 size_t k,
96145 size_t arrsize,
97146 bool hasnan = false ,
98147 bool descending = false );
148+ // key-value partial sort
149+ template <typename T1, typename T2>
150+ XSS_HIDE_SYMBOL void keyvalue_partial_sort (T1 *key,
151+ T2 *val,
152+ size_t k,
153+ size_t arrsize,
154+ bool hasnan = false ,
155+ bool descending = false );
99156 // argsort
100157 template <typename T>
101158 XSS_HIDE_SYMBOL std::vector<size_t > argsort (T *arr,
0 commit comments