Fix ymax in GROUP bounding box
[ipdf/code.git] / src / gmpint.h
index 11b53c5..6ed5303 100644 (file)
@@ -15,12 +15,11 @@ class Gmpint
                Gmpint(int64_t i) {mpz_init_set_si(m_op, i);}
                Gmpint(const std::string & str, int base=10) {mpz_init_set_str(m_op, str.c_str(), base);}
                Gmpint(const Gmpint & cpy) {mpz_init(m_op); mpz_set(m_op, cpy.m_op);}
-               virtual ~Gmpint() {} //TODO: Do we need to delete m_op somehow?
+               virtual ~Gmpint() {mpz_clear(m_op);}
                
-               
-               operator int64_t() {return mpz_get_si(m_op);}
-               operator uint64_t() {return mpz_get_ui(m_op);}
-               operator double() {return mpz_get_d(m_op);}
+               operator int64_t() const {return mpz_get_si(m_op);}
+               operator uint64_t() const {return mpz_get_ui(m_op);}
+               operator double() const {return mpz_get_d(m_op);}
                std::string Str(int base = 10) const
                {
                        //TODO: Make less hacky, if we care.
@@ -40,8 +39,7 @@ class Gmpint
                Gmpint operator-(const Gmpint & sub) const {Gmpint a(*this); a -= sub; return a;}
                Gmpint operator*(const Gmpint & mul) const {Gmpint a(*this); a *= mul; return a;}
                Gmpint operator/(const Gmpint & div) const {Gmpint a(*this); a /= div; return a;}
-               Gmpint operator%(const Gmpint & div) const 
-               {Gmpint a(*this); mpz_mod(a.m_op, a.m_op, div.m_op); return a;}
+               Gmpint operator%(const Gmpint & div) const {Gmpint a(*this); mpz_mod(a.m_op, a.m_op, div.m_op); return a;}
                Gmpint operator-() const {return (Gmpint(0L)-*this);}
                
                
@@ -56,7 +54,6 @@ class Gmpint
                
                
        private:
-               Gmpint(const mpz_t & op) : m_op(op) {}
                mpz_t m_op;
 };     
 

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