QW
*pk = y >> (long)(L+QW-w);
return (w-QW);
y = ((unsigned long)y << QW) & MASK, v += n)
if ((l += QW) > L)
return (w-QW);
for (k -= c, y = 1, l = w; k >= n; k -= n, y <<= QW)
if ((l += QW) > L)
for (i = 0, q = 1, rq = r; i < QW; i++, q *= 2, rq *= rq)
for (w = QW, j = 1; j < d; w += QW, j *= q)
qcs = (((long)(q-1)<<w) + cq) << (L-QW-w);
return (w + QW*(rc/(1-z.u) - 1));