]> www.ginac.de Git - ginac.git/blobdiff - ginac/numeric.cpp
- architectural checkpoint for zeta-function.
[ginac.git] / ginac / numeric.cpp
index cc4faf3027d890e4e5876f272cd507ffbc9541e3..faffb6c5896a6fdadf1d7fd2c38cdea25a66dcf2 100644 (file)
@@ -519,7 +519,7 @@ numeric const & numeric::operator=(char const * s)
  *  csgn(x)==0 for x==0, csgn(x)==1 for Re(x)>0 or Re(x)=0 and Im(x)>0,
  *  csgn(x)==-1 for Re(x)<0 or Re(x)=0 and Im(x)<0.
  *
- *  @see numeric::compare(numeric const @ other) */
+ *  @see numeric::compare(numeric const & other) */
 int numeric::csgn(void) const
 {
     if (is_zero())
@@ -1062,11 +1062,30 @@ numeric atanh(numeric const & x)
     return ::atanh(*x.value);  // -> CLN
 }
 
+/** Numeric evaluation of Riemann's Zeta function.  Currently works only for
+ *  integer arguments. */
+numeric zeta(numeric const & x)
+{
+    if (x.is_integer())
+        return ::cl_zeta(x.to_int());  // -> CLN
+    else
+        clog << "zeta(): Does anybody know good way to calculate this numerically?" << endl;
+    return numeric(0);
+}
+
 /** The gamma function.
- *  stub stub stub stub stub stub! */
+ *  This is only a stub! */
 numeric gamma(numeric const & x)
 {
-    clog << "gamma(): Nobody expects the Spanish inquisition" << endl;
+    clog << "gamma(): Does anybody know good way to calculate this numerically?" << endl;
+    return numeric(0);
+}
+
+/** The psi function (aka polygamma function).
+ *  This is only a stub! */
+numeric psi(numeric const & n, numeric const & x)
+{
+    clog << "psi(): Does anybody know good way to calculate this numerically?" << endl;
     return numeric(0);
 }