From 139faee0a1cee0150009f1c6f71c6595f3d8af75 Mon Sep 17 00:00:00 2001 From: Marshall Lochbaum Date: Sun, 28 Aug 2022 09:16:09 -0400 Subject: [PATCH] Unify integer and character Bins --- src/builtins/grade.h | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/src/builtins/grade.h b/src/builtins/grade.h index 698e1fb6..3d56a06f 100644 --- a/src/builtins/grade.h +++ b/src/builtins/grade.h @@ -293,9 +293,24 @@ B GRADE_CAT(c2)(B t, B w, B x) { u8 fl = GRADE_UD(fl_asc,fl_dsc); - if (we<=el_i32 & xe<=el_i32) { - w = toI32Any(w); i32* wi = i32any_ptr(w); - x = toI32Any(x); i32* xi = i32any_ptr(x); + if (LIKELY(weel_i32 | xe>el_i32) goto gen; + w=toI32Any(w); x=toI32Any(x); + } else { + for (u64 i=0; i,<) 0) thrM(GRADE_CHR": 𝕨 must be sorted"GRADE_UD(," in descending order")); FL_SET(w, fl); @@ -312,6 +327,7 @@ B GRADE_CAT(c2)(B t, B w, B x) { rp[i] = s; } } else { +gen: SGetU(x) SLOW2("𝕨"GRADE_CHR"𝕩", w, x); B* wp = arr_bptr(w); @@ -336,6 +352,7 @@ B GRADE_CAT(c2)(B t, B w, B x) { rp[i] = s; } } +done: decG(w);decG(x); return r; }