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