Lines Matching refs:u1
44 * u = 2^n u1 * u0 (n = number of bits in `u_long', usu. 32)
52 * uv = 2^2n u1 v1 + 2^n u1 v0 + 2^n v1 u0 + u0 v0
53 * = 2^2n u1 v1 + 2^n (u1 v0 + v1 u0) + u0 v0
55 * Now add 2^n u1 v1 to the first term and subtract it from the middle,
59 * uv = (2^2n + 2^n) (u1 v1) +
60 * (2^n) (u1 v0 - u1 v1 + u0 v1 - u0 v0) +
65 * uv = (2^2n + 2^n) (u1 v1) + [u1v1 = high]
66 * (2^n) (u1 - u0) (v0 - v1) + [(u1-u0)... = mid]
69 * The terms (u1 v1), (u1 - u0) (v0 - v1), and (u0 v0) can all be done
71 * of (u1 - u0) or (v0 - v1) may be negative.)
103 #define u1 u.ul[H]
110 * u1, u0, v1, and v0 will be directly accessible through the
122 if (u1 == 0 && v1 == 0) {
124 * An (I hope) important optimization occurs when u1 and v1
138 if (u1 >= u0)
139 negmid = 0, udiff = u1 - u0;
141 negmid = 1, udiff = u0 - u1;
148 high = u1 * v1;
158 #undef u1
184 u_long u1, u0, v1, v0, udiff, vdiff, high, mid, low;
189 u1 = HHALF(u);
197 if (u1 == 0 && v1 == 0)
200 if (u1 >= u0)
201 udiff = u1 - u0, neg = 0;
203 udiff = u0 - u1, neg = 1;
210 high = u1 * v1;