Branchless integer binary search
This commit is contained in:
parent
139faee0a1
commit
f80d3ce263
@ -318,13 +318,9 @@ B GRADE_CAT(c2)(B t, B w, B x) {
|
|||||||
|
|
||||||
for (usz i = 0; i < xia; i++) {
|
for (usz i = 0; i < xia; i++) {
|
||||||
i32 c = xi[i];
|
i32 c = xi[i];
|
||||||
usz s = 0, e = wia+1;
|
i32 *s = wi-1;
|
||||||
while (e-s > 1) {
|
for (usz l = wia+1, h; (h=l/2)>0; l-=h) s += h * !(c LT s[h]);
|
||||||
usz m = (s+(i64)e)/2;
|
rp[i] = s - (wi-1);
|
||||||
if (c LT wi[m-1]) e = m;
|
|
||||||
else s = m;
|
|
||||||
}
|
|
||||||
rp[i] = s;
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
gen:
|
gen:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user