Home | History | Annotate | Download | only in src

Lines Matching full:carry

168   // In both cases we might need a carry bigit.
171 Chunk carry = 0;
175 Chunk sum = bigits_[bigit_pos] + other.bigits_[i] + carry;
177 carry = sum >> kBigitSize;
181 while (carry != 0) {
182 Chunk sum = bigits_[bigit_pos] + carry;
184 carry = sum >> kBigitSize;
237 // Assert that this number + 1 (for the carry) fits into double chunk.
239 DoubleChunk carry = 0;
241 DoubleChunk product = static_cast<DoubleChunk>(factor) * bigits_[i] + carry;
243 carry = (product >> kBigitSize);
245 while (carry != 0) {
247 bigits_[used_digits_] = static_cast<Chunk>(carry & kBigitMask);
249 carry >>= kBigitSize;
261 uint64_t carry = 0;
267 uint64_t tmp = (carry & kBigitMask) + product_low;
269 carry = (carry >> kBigitSize) + (tmp >> kBigitSize) +
272 while (carry != 0) {
274 bigits_[used_digits_] = static_cast<Chunk>(carry & kBigitMask);
276 carry >>= kBigitSize;
703 Chunk carry = 0;
706 bigits_[i] = ((bigits_[i] << shift_amount) + carry) & kBigitMask;
707 carry = new_carry;
709 if (carry != 0) {
710 bigits_[used_digits_] = carry;