Division less buggy, still slow
[ipdf/code.git] / src / arbint.h
index f137796..4b819b9 100644 (file)
@@ -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:                
                                

UCC git Repository :: git.ucc.asn.au