git.ucc.asn.au
/
ipdf
/
code.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
| inline |
side by side
Rational<Arbint> now passes realops.test
[ipdf/code.git]
/
src
/
arbint.cpp
diff --git
a/src/arbint.cpp
b/src/arbint.cpp
index
59e2252
..
ac39942
100644
(file)
--- a/
src/arbint.cpp
+++ b/
src/arbint.cpp
@@
-114,6
+114,11
@@
void Arbint::Division(const Arbint & div, Arbint & result, Arbint & remainder) c
{
remainder = 0;
result = 0;
+ if (div.IsZero())
+ {
+ result = *this;
+ return;
+ }
for (int i = 8*sizeof(digit_t)*m_digits.size(); i >= 0; --i)
{
remainder <<= 1;
@@
-127,6
+132,7
@@
void Arbint::Division(const Arbint & div, Arbint & result, Arbint & remainder) c
result.BitSet(i);
}
}
+ result.m_sign = !(m_sign == div.m_sign);
}
Arbint & Arbint::operator+=(const Arbint & add)
@@
-265,7
+271,7
@@
Arbint & Arbint::operator>>=(unsigned amount)
if (whole >= old_size)
{
- m_digits.resize(1);
+ m_digits.resize(1
,0L
);
m_digits[0] = 0L;
return *this;
}
UCC
git Repository :: git.ucc.asn.au