X-Git-Url: https://git.ucc.asn.au/?p=ipdf%2Fcode.git;a=blobdiff_plain;f=src%2Farbint.h;h=12f83024db96f5581354e6fbca2a40d416e53b13;hp=f1377967b9f2a894ab7127196c3dc0f7579207f3;hb=3ab3475a54c82cb9f5e0b1dbb88035f341b92d49;hpb=eaebb5a37393bb02c3272d6259d60ce75d197b6f diff --git a/src/arbint.h b/src/arbint.h index f137796..12f8302 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;} @@ -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: