David's final changes: more profiler features, fixes.
[ipdf/code.git] / src / gmprat.h
index 3e275d2..e0c9849 100644 (file)
@@ -33,7 +33,7 @@ class Gmprat
                                return "-" + operator-().Str();
                        }
                        double p = Log10();
-                       if (isinf(p))
+                       if (std::isinf(p))
                                return "0";
                                
                        int P = (int)p;
@@ -104,6 +104,11 @@ class Gmprat
                Gmprat Abs() const {Gmprat a(*this); mpq_abs(a.m_op, a.m_op); return a;}
                
                
+               size_t Size() const
+               {
+                       return sizeof(uint64_t) * (mpq_numref(m_op)->_mp_alloc + mpq_denref(m_op)->_mp_alloc);
+               }
+               
        private:
                friend std::ostream& operator<<(std::ostream& os, const Gmprat & fith);
                mpq_t m_op;
@@ -116,7 +121,13 @@ inline std::ostream & operator<<(std::ostream & os, const Gmprat & fith)
 }
 
 
+#if REALTYPE != 9
+inline std::string Str(const Gmprat & g) {return g.Str();}
+inline double Log10(const Gmprat & g) {return g.Log10();}
+inline size_t Size(const Gmprat & g) {return g.Size();}
+inline Gmprat Abs(const Gmprat & g) {return g.Abs();}
 
+#endif
 
 #endif //_GMPRAT_H
 

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