Lines Matching full:carry
48 * The calling function has to handle a possible final carry.
55 mpd_uint_t carry = 0;
62 s = u[i] + (v[i] + carry);
63 carry = (s < u[i]) | (s >= MPD_RADIX);
64 w[i] = carry ? s-MPD_RADIX : s;
66 /* if there is a carry, propagate it */
67 for (; carry && i < m; i++) {
68 s = u[i] + carry;
69 carry = (s == MPD_RADIX);
70 w[i] = carry ? 0 : s;
77 return carry;
88 mpd_uint_t carry = 0;
95 s = w[i] + (u[i] + carry);
96 carry = (s < w[i]) | (s >= MPD_RADIX);
97 w[i] = carry ? s-MPD_RADIX : s;
99 /* if there is a carry, propagate it */
100 for (; carry; i++) {
101 s = w[i] + carry;
102 carry = (s == MPD_RADIX);
103 w[i] = carry ? 0 : s;
109 * final carry. Assumption: m > 0.
115 mpd_uint_t carry;
122 carry = (s < v) | (s >= MPD_RADIX);
123 w[0] = carry ? s-MPD_RADIX : s;
125 /* if there is a carry, propagate it */
126 for (i = 1; carry && i < m; i++) {
127 s = w[i] + carry;
128 carry = (s == MPD_RADIX);
129 w[i] = carry ? 0 : s;
132 return carry;
135 /* Increment u. The calling function has to handle a possible carry. */
140 mpd_uint_t carry = 1;
145 /* if there is a carry, propagate it */
146 for (i = 0; carry && i < n; i++) {
147 s = u[i] + carry;
148 carry = (s == MPD_RADIX);
149 u[i] = carry ? 0 : s;
152 return carry;
220 mpd_uint_t carry = 0;
228 lo = carry + lo;
229 if (lo < carry) hi++;
231 _mpd_div_words_r(&carry, &w[i], hi, lo);
233 w[i] = carry;
246 mpd_uint_t carry;
252 carry = 0;
258 lo = carry + lo;
259 if (lo < carry) hi++;
261 _mpd_div_words_r(&carry, &w[i+j], hi, lo);
263 w[j+m] = carry;
313 mpd_uint_t carry;
361 carry = 0;
366 lo = carry + lo;
367 if (lo < carry) hi++;
372 carry = (u[i+j] < x);
373 u[i+j] = carry ? x+MPD_RADIX : x;
374 carry += hi;
378 if (carry) {
559 * final carry. Assumption: m > 0.
565 mpd_uint_t carry;
572 carry = (s < v) | (s >= b);
573 w[0] = carry ? s-b : s;
575 /* if there is a carry, propagate it */
576 for (i = 1; carry && i < m; i++) {
577 s = w[i] + carry;
578 carry = (s == b);
579 w[i] = carry ? 0 : s;
582 return carry;
585 /* w := product of u (len n) and v (single word). Return carry. */
590 mpd_uint_t carry = 0;
598 lo = carry + lo;
599 if (lo < carry) hi++;
601 _mpd_div_words_r(&carry, &w[i], hi, lo);
604 return carry;
613 mpd_uint_t carry = 0;
621 lo = carry + lo;
622 if (lo < carry) hi++;
624 carry, &w[i], hi, lo, b);
627 return carry;