]> www.ginac.de Git - ginac.git/blobdiff - ginac/inifcns_gamma.cpp
Synced to HEAD
[ginac.git] / ginac / inifcns_gamma.cpp
index 545fcb842dd03c50ac0aa47c46977277e3cac231..8d01127b9fc53490ab1d633e45342839b4739733 100644 (file)
@@ -193,7 +193,7 @@ static ex tgamma_series(const ex & arg,
        //   tgamma(x) == tgamma(x+1) / x
        // from which follows
        //   series(tgamma(x),x==-m,order) ==
-       //   series(tgamma(x+m+1)/(x*(x+1)*...*(x+m)),x==-m,order+1);
+       //   series(tgamma(x+m+1)/(x*(x+1)*...*(x+m)),x==-m,order);
        const ex arg_pt = arg.subs(rel, subs_options::no_pattern);
        if (!arg_pt.info(info_flags::integer) || arg_pt.info(info_flags::positive))
                throw do_taylor();  // caught by function::series()
@@ -202,7 +202,7 @@ static ex tgamma_series(const ex & arg,
        ex ser_denom = _ex1;
        for (numeric p; p<=m; ++p)
                ser_denom *= arg+p;
-       return (tgamma(arg+m+_ex1)/ser_denom).series(rel, order+1, options);
+       return (tgamma(arg+m+_ex1)/ser_denom).series(rel, order, options);
 }
 
 
@@ -304,19 +304,19 @@ static ex beta_series(const ex & arg1,
                throw do_taylor();  // caught by function::series()
        // trap the case where arg1 is on a pole:
        if (arg1.info(info_flags::integer) && !arg1.info(info_flags::positive))
-               arg1_ser = tgamma(arg1+s).series(rel, order, options);
+               arg1_ser = tgamma(arg1+s);
        else
-               arg1_ser = tgamma(arg1).series(rel,order);
+               arg1_ser = tgamma(arg1);
        // trap the case where arg2 is on a pole:
        if (arg2.info(info_flags::integer) && !arg2.info(info_flags::positive))
-               arg2_ser = tgamma(arg2+s).series(rel, order, options);
+               arg2_ser = tgamma(arg2+s);
        else
-               arg2_ser = tgamma(arg2).series(rel,order);
+               arg2_ser = tgamma(arg2);
        // trap the case where arg1+arg2 is on a pole:
        if ((arg1+arg2).info(info_flags::integer) && !(arg1+arg2).info(info_flags::positive))
-               arg1arg2_ser = tgamma(arg2+arg1+s).series(rel, order, options);
+               arg1arg2_ser = tgamma(arg2+arg1+s);
        else
-               arg1arg2_ser = tgamma(arg2+arg1).series(rel,order);
+               arg1arg2_ser = tgamma(arg2+arg1);
        // compose the result (expanding all the terms):
        return (arg1_ser*arg2_ser/arg1arg2_ser).series(rel, order, options).expand();
 }
@@ -423,7 +423,7 @@ static ex psi1_series(const ex & arg,
 }
 
 unsigned psi1_SERIAL::serial =
-       function::register_new(function_options("psi").
+       function::register_new(function_options("psi", 1).
                               eval_func(psi1_eval).
                               evalf_func(psi1_evalf).
                               derivative_func(psi1_deriv).
@@ -551,7 +551,7 @@ static ex psi2_series(const ex & n,
 }
 
 unsigned psi2_SERIAL::serial =
-       function::register_new(function_options("psi").
+       function::register_new(function_options("psi", 2).
                               eval_func(psi2_eval).
                               evalf_func(psi2_evalf).
                               derivative_func(psi2_deriv).