Lines Matching refs:u0
55 * u = 2^n u1 * u0 (n = number of bits in `u_int', usu. 32)
63 * uv = 2^2n u1 v1 + 2^n u1 v0 + 2^n v1 u0 + u0 v0
64 * = 2^2n u1 v1 + 2^n (u1 v0 + v1 u0) + u0 v0
67 * and add 2^n u0 v0 to the last term and subtract it from the middle.
71 * (2^n) (u1 v0 - u1 v1 + u0 v1 - u0 v0) +
72 * (2^n + 1) (u0 v0)
77 * (2^n) (u1 - u0) (v0 - v1) + [(u1-u0)... = mid]
78 * (2^n + 1) (u0 v0) [u0v0 = low]
80 * The terms (u1 v1), (u1 - u0) (v0 - v1), and (u0 v0) can all be done
82 * of (u1 - u0) or (v0 - v1) may be negative.)
115 #define u0 u.ul[L]
121 * u1, u0, v1, and v0 will be directly accessible through the
137 * are small. Here the product is just u0*v0.
139 prod.q = __lmulq(u0, v0);
147 low.q = __lmulq(u0, v0);
149 if (u1 >= u0)
150 negmid = 0, udiff = u1 - u0;
152 negmid = 1, udiff = u0 - u1;
170 #undef u0
195 u_int u1, u0, v1, v0, udiff, vdiff, high, mid, low;
201 u0 = LHALF(u);
205 low = u0 * v0;
211 if (u1 >= u0)
212 udiff = u1 - u0, neg = 0;
214 udiff = u0 - u1, neg = 1;