From fb1230bcc281d05aa7f778972a75a8d8fbacb382 Mon Sep 17 00:00:00 2001 From: Marshall Lochbaum Date: Fri, 16 Sep 2022 20:02:21 -0400 Subject: [PATCH] Sparse Indices prototype --- src/builtins/grade.h | 17 +++++++---------- src/builtins/slash.c | 20 +++++++++++++------- 2 files changed, 20 insertions(+), 17 deletions(-) diff --git a/src/builtins/grade.h b/src/builtins/grade.h index 27c7e078..5d7d634c 100644 --- a/src/builtins/grade.h +++ b/src/builtins/grade.h @@ -35,16 +35,13 @@ TALLOC(usz, c0, C); usz *c0o=c0+C/2; \ for (usz j=0; je; j--) { i+=c0[j]; rp[i]--; } \ - ) \ - for (usz i=1; i0 && !xp[xia-1]) xia--; - for (u64 i = 0; i < xia; i++) { - i32 c = xp[i]; - if (LIKELY(c==0 || c==1)) { - *rp = i; - rp+= c; - } else { + if (s/16 <= xia) { + usz b = 1<<10; + for (usz k=0, j=0, js=0, ij=xp[0]; ; ) { + usz e = b0 && !xp[xia-1]) xia--; + for (u64 i = 0; i < xia; i++) { + i32 c = xp[i]; for (i32 j = 0; j < c; j++) *rp++ = i; } }