INNER CODE UNIT · C
x
lh3/bedtk · cgranges.c:245
int64_t x = 1LL<<(k-1), i0 = (x<<1) - 1, step = x<<2;
for (i = i0; i < n; i += step) {
int32_t el = a[i - x].y;
int32_t er = i + x < n? a[i + x].y : last;
int32_t e = (int32_t)a[i].x;
e = e > el? e : el;
e = e > er? e : er;
a[i].y = e;
}
last_i = last_i>>k&1? last_i - x : last_i + x;
if (last_i < n && a[last_i].y > last)
last = a[last_i].y;
}
return k - 1;
}
void cr_index2(cgranges_t *cr, int32_t merge)
{