@@ -541,8 +541,11 @@ X86_SIMD_SORT_INLINE void argselect_64bit_(type_t *arr,
541
541
542
542
/* argsort methods for 32-bit and 64-bit dtypes */
543
543
template <typename T>
544
- X86_SIMD_SORT_INLINE void
545
- avx512_argsort (T *arr, arrsize_t *arg, arrsize_t arrsize, bool hasnan = false , bool descending = false )
544
+ X86_SIMD_SORT_INLINE void avx512_argsort (T *arr,
545
+ arrsize_t *arg,
546
+ arrsize_t arrsize,
547
+ bool hasnan = false ,
548
+ bool descending = false )
546
549
{
547
550
/* TODO optimization: on 32-bit, use zmm_vector for 32-bit dtype */
548
551
using vectype = typename std::conditional<sizeof (T) == sizeof (int32_t ),
@@ -558,27 +561,23 @@ avx512_argsort(T *arr, arrsize_t *arg, arrsize_t arrsize, bool hasnan = false, b
558
561
if constexpr (std::is_floating_point_v<T>) {
559
562
if ((hasnan) && (array_has_nan<vectype>(arr, arrsize))) {
560
563
std_argsort_withnan (arr, arg, 0 , arrsize);
561
-
562
- if (descending){
563
- std::reverse (arg, arg + arrsize);
564
- }
565
-
564
+
565
+ if (descending) { std::reverse (arg, arg + arrsize); }
566
+
566
567
return ;
567
568
}
568
569
}
569
570
UNUSED (hasnan);
570
571
argsort_64bit_<vectype, argtype>(
571
572
arr, arg, 0 , arrsize - 1 , 2 * (arrsize_t )log2 (arrsize));
572
-
573
- if (descending){
574
- std::reverse (arg, arg + arrsize);
575
- }
573
+
574
+ if (descending) { std::reverse (arg, arg + arrsize); }
576
575
}
577
576
}
578
577
579
578
template <typename T>
580
- X86_SIMD_SORT_INLINE std::vector<arrsize_t >
581
- avx512_argsort ( T *arr, arrsize_t arrsize, bool hasnan = false , bool descending = false )
579
+ X86_SIMD_SORT_INLINE std::vector<arrsize_t > avx512_argsort (
580
+ T *arr, arrsize_t arrsize, bool hasnan = false , bool descending = false )
582
581
{
583
582
std::vector<arrsize_t > indices (arrsize);
584
583
std::iota (indices.begin (), indices.end (), 0 );
@@ -588,8 +587,11 @@ avx512_argsort(T *arr, arrsize_t arrsize, bool hasnan = false, bool descending =
588
587
589
588
/* argsort methods for 32-bit and 64-bit dtypes */
590
589
template <typename T>
591
- X86_SIMD_SORT_INLINE void
592
- avx2_argsort (T *arr, arrsize_t *arg, arrsize_t arrsize, bool hasnan = false , bool descending = false )
590
+ X86_SIMD_SORT_INLINE void avx2_argsort (T *arr,
591
+ arrsize_t *arg,
592
+ arrsize_t arrsize,
593
+ bool hasnan = false ,
594
+ bool descending = false )
593
595
{
594
596
using vectype = typename std::conditional<sizeof (T) == sizeof (int32_t ),
595
597
avx2_half_vector<T>,
@@ -603,27 +605,23 @@ avx2_argsort(T *arr, arrsize_t *arg, arrsize_t arrsize, bool hasnan = false, boo
603
605
if constexpr (std::is_floating_point_v<T>) {
604
606
if ((hasnan) && (array_has_nan<vectype>(arr, arrsize))) {
605
607
std_argsort_withnan (arr, arg, 0 , arrsize);
606
-
607
- if (descending){
608
- std::reverse (arg, arg + arrsize);
609
- }
610
-
608
+
609
+ if (descending) { std::reverse (arg, arg + arrsize); }
610
+
611
611
return ;
612
612
}
613
613
}
614
614
UNUSED (hasnan);
615
615
argsort_64bit_<vectype, argtype>(
616
616
arr, arg, 0 , arrsize - 1 , 2 * (arrsize_t )log2 (arrsize));
617
-
618
- if (descending){
619
- std::reverse (arg, arg + arrsize);
620
- }
617
+
618
+ if (descending) { std::reverse (arg, arg + arrsize); }
621
619
}
622
620
}
623
621
624
622
template <typename T>
625
- X86_SIMD_SORT_INLINE std::vector<arrsize_t >
626
- avx2_argsort ( T *arr, arrsize_t arrsize, bool hasnan = false , bool descending = false )
623
+ X86_SIMD_SORT_INLINE std::vector<arrsize_t > avx2_argsort (
624
+ T *arr, arrsize_t arrsize, bool hasnan = false , bool descending = false )
627
625
{
628
626
std::vector<arrsize_t > indices (arrsize);
629
627
std::iota (indices.begin (), indices.end (), 0 );
@@ -649,7 +647,7 @@ X86_SIMD_SORT_INLINE void avx512_argselect(T *arr,
649
647
ymm_vector<arrsize_t >,
650
648
zmm_vector<arrsize_t >>::type;
651
649
652
- if (arrsize > 1 ) {
650
+ if (arrsize > 1 ) {
653
651
if constexpr (std::is_floating_point_v<T>) {
654
652
if ((hasnan) && (array_has_nan<vectype>(arr, arrsize))) {
655
653
std_argselect_withnan (arr, arg, k, 0 , arrsize);
0 commit comments