From 26c3dbfeea7da0c4748bd42f9e03668bd894fabf Mon Sep 17 00:00:00 2001 From: Marshall Lochbaum Date: Fri, 16 Sep 2022 19:26:55 -0400 Subject: [PATCH] Start using type-independent utilities in compress() --- src/builtins/slash.c | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/src/builtins/slash.c b/src/builtins/slash.c index 208aa15d..83df1c70 100644 --- a/src/builtins/slash.c +++ b/src/builtins/slash.c @@ -261,24 +261,25 @@ static B where(B x, usz xia, u64 s) { return r; } -static B compress(B w, B x, usz wia, B xf) { +static B compress(B w, B x, usz wia) { u64* wp = bitarr_ptr(w); u64 we = 0; usz ie = wia/64; usz q=wia%64; if (q) we = wp[ie] &= ((u64)1<ia = wsum; @@ -318,19 +319,20 @@ static B compress(B w, B x, usz wia, B xf) { #define WITH_SPARSE(W, CUTOFF, DENSE) { \ i##W *xp=tyany_ptr(x), *rp; \ if (wsum>=wia/CUTOFF) { DENSE; } \ - else { rp=m_tyarrv(&r,W/8,wsum,el2t(xe)); COMPRESS_BLOCK(i##W); } \ + else { rp=m_tyarrv(&r,W/8,wsum,xt); COMPRESS_BLOCK(i##W); } \ break; } #if SINGELI - case el_i8: case el_c8: WITH_SPARSE( 8, 32, rp=m_tyarrvO(&r,1,wsum,el2t(xe), 8); bmipopc_2slash8 (wp, xp, rp, wia)) - case el_i16:case el_c16: WITH_SPARSE(16, 16, rp=m_tyarrvO(&r,2,wsum,el2t(xe), 16); bmipopc_2slash16(wp, xp, rp, wia)) + case 3: WITH_SPARSE( 8, 32, rp=m_tyarrvO(&r,1,wsum,xt, 8); bmipopc_2slash8 (wp, xp, rp, wia)) + case 4: WITH_SPARSE(16, 16, rp=m_tyarrvO(&r,2,wsum,xt, 16); bmipopc_2slash16(wp, xp, rp, wia)) #else - case el_i8: case el_c8: WITH_SPARSE( 8, 2, rp=m_tyarrv(&r,1,wsum,el2t(xe)); for (usz i=0; i