abacus: bignum: extract do_dump
Useful when debugging.
This commit is contained in:
parent
c675b15248
commit
9d8d3fa864
|
@ -30,6 +30,11 @@ void trim_leading_zeros(digits_type& num) {
|
||||||
num.erase(it.base(), num.end());
|
num.erase(it.base(), num.end());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::ostream& do_dump(digits_type const& num, std::ostream& out) {
|
||||||
|
std::copy(num.rbegin(), num.rend(), std::ostream_iterator<int>(out));
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
// More optimised than full-on div_mod
|
// More optimised than full-on div_mod
|
||||||
digits_type do_halve(digits_type num) {
|
digits_type do_halve(digits_type num) {
|
||||||
assert(num.size() != 0);
|
assert(num.size() != 0);
|
||||||
|
@ -229,10 +234,8 @@ std::ostream& BigNum::dump(std::ostream& out) const {
|
||||||
if (is_negative()) {
|
if (is_negative()) {
|
||||||
out << '-';
|
out << '-';
|
||||||
}
|
}
|
||||||
std::copy(digits_.rbegin(), digits_.rend(),
|
|
||||||
std::ostream_iterator<int>(out));
|
|
||||||
|
|
||||||
return out;
|
return do_dump(digits_, out);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::istream& BigNum::read(std::istream& in) {
|
std::istream& BigNum::read(std::istream& in) {
|
||||||
|
|
Loading…
Reference in a new issue