X-Git-Url: https://git.ucc.asn.au/?p=ipdf%2Fcode.git;a=blobdiff_plain;f=src%2Farbint.h;h=4b819b9f18ddbc3e0ffe1c74308f3463035dfbe4;hp=f1377967b9f2a894ab7127196c3dc0f7579207f3;hb=87b1d05df45663252c86a03cb2c713c6dc3e9a98;hpb=eaebb5a37393bb02c3272d6259d60ce75d197b6f diff --git a/src/arbint.h b/src/arbint.h index f137796..4b819b9 100644 --- a/src/arbint.h +++ b/src/arbint.h @@ -25,7 +25,8 @@ namespace IPDF digit_t AsDigit() const { - return (m_sign) ? -m_digits[0] : m_digits[0]; + digit_t digit = (m_digits.size() == 1) ? m_digits[0] : 0xFFFFFFFFFFFFFFFF; + return (m_sign) ? -digit : digit; } inline bool Sign() const {return m_sign;} @@ -100,7 +101,7 @@ namespace IPDF inline bool operator>=(const Arbint & leq) const { - return (this->operator==(leq) || this->operator<(leq)); + return (this->operator==(leq) || this->operator>(leq)); } inline bool operator>(const Arbint & grea) const { @@ -109,6 +110,10 @@ namespace IPDF bool IsZero() const; + //inline operator double() const {return double(AsDigit());} + inline operator digit_t() const {return AsDigit();} + //inline operator int() const {return int(AsDigit());} + unsigned Shrink(); private: