Lines Matching refs:bit
126 * zero bit at the top of x. Doing so means that q is not going to acquire
127 * a 1 bit in the first trip around the loop (since x0 < 2^NBITS). If the
162 * bit at a time, from the top down, and is not used itself in the loop
164 * in an integer, one word at a time, which saves a bit of work. Also,
165 * since 1 << k is always a `new' bit in q, 1 << k and 1 << (k+1) are
177 * Furthermore, we can prove with a bit of work that x never exceeds y by
184 * In fact, we want even one more bit (for a carry, to avoid compares), or
192 uint32_t bit, q, tt;
253 * set the top bit in q, so we can do that manually and start
254 * the loop at the next bit down instead. We must be sure to
258 * save work. To avoid `(1 << 31) << 1', we also do the top bit
261 * The calculation `t = y + bit' breaks down into `t0 = y0, ...,
262 * t2 = y2, t? |= bit' for the appropriate word. Since the bit
270 bit = FP_1;
272 /* if (x >= (t0 = y0 | bit)) { */ /* always true */
273 q = bit;
274 x0 -= bit;
275 y0 = bit << 1;
278 while ((bit >>= 1) != 0) { /* for remaining bits in q0 */
280 t0 = y0 | bit; /* t = y + bit */
283 q |= bit; /* q += bit */
284 y0 |= bit << 1; /* y += bit << 1 */
296 bit = 1 << 31;
298 t1 = bit;
303 q = bit; /* q += bit */
304 y0 |= 1; /* y += bit << 1 */
307 while ((bit >>= 1) != 0) { /* for remaining bits in q1 */
309 t1 = y1 | bit;
314 q |= bit;
315 y1 |= bit << 1;
327 bit = 1 << 31;
329 t2 = bit;
335 q |= bit;
339 while ((bit >>= 1) != 0) {
341 t2 = y2 | bit;
347 q |= bit;
348 y2 |= bit << 1;