@@ -25,12 +25,14 @@ X86_SIMD_SORT_FINLINE void partial_qsort(T *arr,
2525 bool descending = false );
2626
2727template <typename T>
28- X86_SIMD_SORT_FINLINE std::vector<size_t >
29- argsort (T *arr, size_t size, bool hasnan = false , bool descending = false );
28+ X86_SIMD_SORT_FINLINE std::vector<size_t > argsort (const T *arr,
29+ size_t size,
30+ bool hasnan = false ,
31+ bool descending = false );
3032
3133/* argsort API required by NumPy: */
3234template <typename T>
33- X86_SIMD_SORT_FINLINE void argsort (T *arr,
35+ X86_SIMD_SORT_FINLINE void argsort (const T *arr,
3436 size_t *arg,
3537 size_t size,
3638 bool hasnan = false ,
@@ -90,14 +92,17 @@ X86_SIMD_SORT_FINLINE void keyvalue_partial_sort(T1 *key,
9092 ISA##_partial_qsort (arr, k, size, hasnan, descending); \
9193 } \
9294 template <typename T> \
93- X86_SIMD_SORT_FINLINE void x86simdsortStatic::argsort ( \
94- T *arr, size_t *arg, size_t size, bool hasnan, bool descending) \
95+ X86_SIMD_SORT_FINLINE void x86simdsortStatic::argsort (const T *arr, \
96+ size_t *arg, \
97+ size_t size, \
98+ bool hasnan, \
99+ bool descending) \
95100 { \
96101 ISA##_argsort (arr, arg, size, hasnan, descending); \
97102 } \
98103 template <typename T> \
99104 X86_SIMD_SORT_FINLINE std::vector<size_t > x86simdsortStatic::argsort ( \
100- T *arr, size_t size, bool hasnan, bool descending) \
105+ const T *arr, size_t size, bool hasnan, bool descending) \
101106 { \
102107 std::vector<size_t > indices (size); \
103108 std::iota (indices.begin (), indices.end (), 0 ); \
@@ -211,4 +216,4 @@ XSS_METHODS(avx2)
211216#error "x86simdsortStatic methods needs to be compiled with avx512/avx2 specific flags"
212217#endif // (__AVX512VL__ && __AVX512DQ__) || AVX2
213218
214- #endif // X86_SIMD_SORT_STATIC_METHODS
219+ #endif // X86_SIMD_SORT_STATIC_METHODS
0 commit comments