More precise sparse check for i8 /⁼ result: previously stopped at 65
This commit is contained in:
parent
e24d0bac63
commit
926e59483d
@ -837,11 +837,11 @@ B slash_im(B t, B x) {
|
|||||||
if (xia < ria/8) { \
|
if (xia < ria/8) { \
|
||||||
u8 maxcount = 0; \
|
u8 maxcount = 0; \
|
||||||
TALLOC(u8, tab, ria); \
|
TALLOC(u8, tab, ria); \
|
||||||
for (usz i=0; i<xia; i++) tab[xp[i]]=0; \
|
for (usz i=0; i<xia; i++) tab[xp[i]]=0; \
|
||||||
for (usz i=0; i<xia; i++) maxcount|=tab[xp[i]]++; \
|
for (usz i=0; i<xia; i++) maxcount|=++tab[xp[i]]; \
|
||||||
TFREE(tab); \
|
TFREE(tab); \
|
||||||
if (maxcount==0) a=xia; \
|
if (maxcount<=1) a=xia; \
|
||||||
else if (N>=16 && maxcount<127) { \
|
else if (N>=16 && maxcount<128) { \
|
||||||
i8* rp; r = m_i8arrv(&rp, ria); for (usz i=0; i<ria; i++) rp[i]=0; \
|
i8* rp; r = m_i8arrv(&rp, ria); for (usz i=0; i<ria; i++) rp[i]=0; \
|
||||||
for (usz i = 0; i < xia; i++) rp[xp[i]]++; \
|
for (usz i = 0; i < xia; i++) rp[xp[i]]++; \
|
||||||
break; \
|
break; \
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user