]> www.ginac.de Git - ginac.git/blobdiff - ginac/inifcns_gamma.cpp
* Minor cleanups to avoid copying of symbols and stuff like that.
[ginac.git] / ginac / inifcns_gamma.cpp
index 497c37a6adf62beccb007f46406c628337e98d33..ca16b18b22cfdf45639efc2b3c541f126f8ea9ae 100644 (file)
@@ -234,8 +234,8 @@ static ex beta_eval(const ex & x, const ex & y)
                // treat all problematic x and y that may not be passed into tgamma,
                // because they would throw there although beta(x,y) is well-defined
                // using the formula beta(x,y) == (-1)^y * beta(1-x-y, y)
-               const numeric nx = ex_to<numeric>(x);
-               const numeric ny = ex_to<numeric>(y);
+               const numeric &nx = ex_to<numeric>(x);
+               const numeric &ny = ex_to<numeric>(y);
                if (nx.is_real() && nx.is_integer() &&
                        ny.is_real() && ny.is_integer()) {
                        if (nx.is_negative()) {
@@ -345,7 +345,7 @@ static ex psi1_evalf(const ex & x)
 static ex psi1_eval(const ex & x)
 {
        if (x.info(info_flags::numeric)) {
-               const numeric nx = ex_to<numeric>(x);
+               const numeric &nx = ex_to<numeric>(x);
                if (nx.is_integer()) {
                        // integer case 
                        if (nx.is_positive()) {
@@ -453,8 +453,8 @@ static ex psi2_eval(const ex & n, const ex & x)
                return log(tgamma(x));
        if (n.info(info_flags::numeric) && n.info(info_flags::posint) &&
                x.info(info_flags::numeric)) {
-               const numeric nn = ex_to<numeric>(n);
-               const numeric nx = ex_to<numeric>(x);
+               const numeric &nn = ex_to<numeric>(n);
+               const numeric &nx = ex_to<numeric>(x);
                if (nx.is_integer()) {
                        // integer case 
                        if (nx.is_equal(_num1))