+
+ // This number had more digits but there is a carry left over
+ if (carry != 0L && m_digits.size() > add.m_digits.size())
+ {
+ vector<digit_t> carry_digits(m_digits.size() - add.m_digits.size(), 0L);
+ carry_digits[0] = carry;
+ carry = add_digits((digit_t*)m_digits.data()+add.m_digits.size(),
+ (digit_t*)carry_digits.data(), m_digits.size()-add.m_digits.size());
+ }
+
+ // There is still a carry left over