Lines Matching defs:x0
60 * Our task is to calculate the square root of a floating point number x0.
129 * a 1 bit in the first trip around the loop (since x0 < 2^NBITS). If the
135 * and the result q will then be sqrt(x0) * 2^floor(NBITS / 2).
137 * value, for which q is some power of two times its square root, x0.)
142 * q = y = 0; x = x0;
158 * If x0 is fixed point, rather than an integer, we can simply alter the
159 * scale factor between q and sqrt(x0). As it happens, we can easily arrange
160 * for the scale factor to be 2**0 or 1, so that sqrt(x0) == q.
162 * In our case, however, x0 (and therefore x, y, q, and t) are multiword
172 * intermediate calculations can overflow. We know that x0 is in [1..4)
195 u_int x0, x1, x2, x3;
244 FPU_ADDCS(x1, x1, x1); FPU_ADDC(x0, x0, x0); \
248 x0 = (x0 << 1) | (x1 >> 31); x1 = (x1 << 1) | (x2 >> 31); \
259 x0 = x->fp_mant[0];
293 x0 -= bit;
300 if (x0 >= t0) { /* if x >= t then */
301 x0 -= t0; /* x -= t */
319 FPU_SUBC(d0, x0, t0); /* d = x - t */
321 x0 = d0, x1 = d1; /* x -= t */
330 FPU_SUBC(d0, x0, t0);
332 x0 = d0, x1 = d1;
351 FPU_SUBC(d0, x0, t0);
353 x0 = d0, x1 = d1, x2 = d2;
363 FPU_SUBC(d0, x0, t0);
365 x0 = d0, x1 = d1, x2 = d2;
385 FPU_SUBC(d0, x0, t0);
388 x0 = d0, x1 = d1, x2 = d2;
398 FPU_SUBC(d0, x0, t0);
400 x0 = d0, x1 = d1, x2 = d2;
412 x->fp_sticky = x0 | x1 | x2 | x3;