]> www.ginac.de Git - ginac.git/blobdiff - ginac/numeric.h
- introduced info_flags::cinteger, info_flags::crational,
[ginac.git] / ginac / numeric.h
index eb3565907148ffa34537f7e9b6d65afc841f26ea..68c227d1abacb4948261f61541470575d3694c05 100644 (file)
@@ -30,7 +30,9 @@
 class cl_N;     // We want to include cln.h only in numeric.cpp in order to 
                 // avoid namespace pollution and keep compile-time low.
 
+#ifndef NO_GINAC_NAMESPACE
 namespace GiNaC {
+#endif // ndef NO_GINAC_NAMESPACE
 
 #define HASHVALUE_NUMERIC 0x80000001U
 
@@ -77,6 +79,7 @@ class numeric : public basic
     friend numeric asinh(numeric const & x);
     friend numeric acosh(numeric const & x);
     friend numeric atanh(numeric const & x);
+    friend numeric zeta(numeric const & x);
     friend numeric bernoulli(numeric const & n);
     friend numeric abs(numeric const & x);
     friend numeric mod(numeric const & a, numeric const & b);
@@ -123,9 +126,9 @@ public:
     // functions overriding virtual functions from bases classes
 public:
     basic * duplicate() const;
+    void print(ostream & os, unsigned precedence=0) const;
     void printraw(ostream & os) const;
     void printtree(ostream & os, unsigned indent) const;
-    void print(ostream & os, unsigned precedence=0) const;
     void printcsrc(ostream & os, unsigned type, unsigned precedence=0) const;
     bool info(unsigned inf) const;
     ex evalf(int level=0) const;
@@ -185,6 +188,8 @@ public:
     bool is_prime(void) const;
     bool is_rational(void) const;
     bool is_real(void) const;
+    bool is_cinteger(void) const;
+    bool is_crational(void) const;
     bool operator==(numeric const & other) const;
     bool operator!=(numeric const & other) const;
     bool operator<(numeric const & other) const;
@@ -305,6 +310,12 @@ inline bool is_rational(numeric const & x)
 inline bool is_real(numeric const & x)
 { return x.is_real(); }
 
+inline bool is_cinteger(numeric const & x)
+{ return x.is_cinteger(); }
+
+inline bool is_crational(numeric const & x)
+{ return x.is_crational(); }
+
 inline numeric real(numeric const & x)
 { return x.real(); }
 
@@ -326,9 +337,11 @@ ex CatalanEvalf(void);
 // utility functions
 inline const numeric &ex_to_numeric(const ex &e)
 {
-       return static_cast<const numeric &>(*e.bp);
+    return static_cast<const numeric &>(*e.bp);
 }
 
+#ifndef NO_GINAC_NAMESPACE
 } // namespace GiNaC
+#endif // ndef NO_GINAC_NAMESPACE
 
 #endif // ndef __GINAC_NUMERIC_H__