Lines Matching refs:hi
103 dw_reduce(mpd_uint_t hi, mpd_uint_t lo, mpd_uint_t m)
107 _mpd_div_word(&w, &r1, hi, m);
119 dw_submod(mpd_uint_t a, mpd_uint_t hi, mpd_uint_t lo, mpd_uint_t m)
123 r = dw_reduce(hi, lo, m);
142 * a) hi, lo <- a * b # Calculate a * b.
144 * b) hi, lo <- R(hi, lo) # Reduce modulo p.
146 * c) Repeat step b) until 0 <= hi * 2**64 + lo < 2*p.
154 mpd_uint_t hi, lo, x, y;
157 _mpd_mul_words(&hi, &lo, a, b);
162 x = y = hi;
163 hi >>= 32;
166 if (x > lo) hi--;
170 if (lo < y) hi++;
173 x = y = hi;
174 hi >>= 32;
177 if (x > lo) hi--;
181 if (lo < y) hi++;
183 return (hi || lo >= m ? lo - m : lo);
188 x = y = hi;
189 hi >>= 30;
192 if (x > lo) hi--;
196 if (lo < y) hi++;
199 x = y = hi;
200 hi >>= 30;
203 if (x > lo) hi--;
207 if (lo < y) hi++;
210 x = y = hi;
211 hi >>= 30;
214 if (x > lo) hi--;
218 if (lo < y) hi++;
220 return (hi || lo >= m ? lo - m : lo);
225 x = y = hi;
226 hi >>= 24;
229 if (x > lo) hi--;
233 if (lo < y) hi++;
236 x = y = hi;
237 hi >>= 24;
240 if (x > lo) hi--;
244 if (lo < y) hi++;
247 x = y = hi;
248 hi >>= 24;
251 if (x > lo) hi--;
255 if (lo < y) hi++;
257 return (hi || lo >= m ? lo - m : lo);
328 mpd_uint_t hi, lo, q, r;
329 _mpd_mul_words(&hi, &lo, a, b);
330 _mpd_div_words(&q, &r, hi, lo, m);