abacus: bignum: add addition & substraction
This commit is contained in:
parent
d083ede78c
commit
fe01661613
3 changed files with 203 additions and 0 deletions
|
|
@ -25,6 +25,28 @@ public:
|
|||
return ret;
|
||||
}
|
||||
|
||||
friend BigNum& operator+=(BigNum& lhs, BigNum const& rhs) {
|
||||
lhs.add(rhs);
|
||||
return lhs;
|
||||
}
|
||||
|
||||
friend BigNum operator+(BigNum const& lhs, BigNum const& rhs) {
|
||||
auto ret = lhs;
|
||||
ret += rhs;
|
||||
return ret;
|
||||
}
|
||||
|
||||
friend BigNum& operator-=(BigNum& lhs, BigNum const& rhs) {
|
||||
lhs.substract(rhs);
|
||||
return lhs;
|
||||
}
|
||||
|
||||
friend BigNum operator-(BigNum const& lhs, BigNum const& rhs) {
|
||||
auto ret = lhs;
|
||||
ret -= rhs;
|
||||
return ret;
|
||||
}
|
||||
|
||||
friend bool operator==(BigNum const& lhs, BigNum const& rhs) {
|
||||
return lhs.equal(rhs);
|
||||
}
|
||||
|
|
@ -53,6 +75,8 @@ private:
|
|||
std::ostream& dump(std::ostream& out) const;
|
||||
|
||||
void flip_sign();
|
||||
void add(BigNum const& rhs);
|
||||
void substract(BigNum const& rhs);
|
||||
|
||||
bool equal(BigNum const& rhs) const;
|
||||
bool less_than(BigNum const& rhs) const;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue