From 9376e02ecb25834f9590d7b405837319f22f744a Mon Sep 17 00:00:00 2001 From: Marshall Lochbaum Date: Sat, 27 Aug 2022 15:44:25 -0400 Subject: [PATCH] Boolean sorting --- src/builtins/grade.h | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/builtins/grade.h b/src/builtins/grade.h index bcedf0ee..698e1fb6 100644 --- a/src/builtins/grade.h +++ b/src/builtins/grade.h @@ -129,7 +129,18 @@ B SORT_C1(B t, B x) { if (n <= 1) return x; u8 xe = TI(x,elType); B r; - if (xe==el_i8) { + if (xe==el_bit) { + u64* xp = bitarr_ptr(x); + u64* rp; r = m_bitarrv(&rp, n); + usz sum = bit_sum(xp, n); + u64 n0 = GRADE_UD(n-sum, sum); + u64 ones = -1ull; + u64 v0 = GRADE_UD(0, ones); + usz i=0, e=(n+63)/64; + for (; i