+/** Evaluation of polygamma-function psi(x).
+ * Somebody ought to provide some good numerical evaluation some day... */
+static ex psi1_eval(ex const & x)
+{
+ if (x.info(info_flags::numeric)) {
+ // do some stuff...
+ }
+ return psi(x).hold();
+}
+
+static ex psi1_evalf(ex const & x)
+{
+ BEGIN_TYPECHECK
+ TYPECHECK(x,numeric)
+ END_TYPECHECK(psi(x))
+
+ return psi(ex_to_numeric(x));
+}
+
+static ex psi1_diff(ex const & x, unsigned diff_param)
+{
+ GINAC_ASSERT(diff_param==0);
+
+ return psi(exONE(), x);
+}
+
+static ex psi1_series(ex const & x, symbol const & s, ex const & point, int order)
+{
+ throw(std::logic_error("Nobody told me how to series expand the psi function. :-("));
+}
+
+unsigned function_index_psi1 = function::register_new("psi", psi1_eval, psi1_evalf, psi1_diff, psi1_series);
+
+//////////
+// Psi-functions (aka polygamma-functions) psi(0,x)==psi(x)
+//////////
+