* 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())
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);
}