]> www.ginac.de Git - ginac.git/blobdiff - ginac/inifcns_trans.cpp
* Analytic continuation for atan2(y,x) for complex y and x.
[ginac.git] / ginac / inifcns_trans.cpp
index f0d785904176bd4519b6d35f127228d980e93d2e..90380efe83e1b12a5098338a8e33033e8b0474f2 100644 (file)
@@ -830,9 +830,9 @@ static ex atan2_eval(const ex & y, const ex & x)
                if (x.info(info_flags::positive))
                        return _ex0;
 
-               // atan(0, x), x real and negative -> -Pi
+               // atan(0, x), x real and negative -> Pi
                if (x.info(info_flags::negative))
-                       return _ex_1*Pi;
+                       return Pi;
        }
 
        if (x.is_zero()) {
@@ -869,15 +869,15 @@ static ex atan2_eval(const ex & y, const ex & x)
        }
 
        // atan(float, float) -> float
-       if (is_a<numeric>(y) && is_a<numeric>(x) && !y.info(info_flags::crational)
-                       && !x.info(info_flags::crational))
+       if (is_a<numeric>(y) && !y.info(info_flags::crational) &&
+           is_a<numeric>(x) && !x.info(info_flags::crational))
                return atan(ex_to<numeric>(y), ex_to<numeric>(x));
 
        // atan(real, real) -> atan(y/x) +/- Pi
        if (y.info(info_flags::real) && x.info(info_flags::real)) {
                if (x.info(info_flags::positive))
                        return atan(y/x);
-               else if(y.info(info_flags::positive))
+               else if (y.info(info_flags::positive))
                        return atan(y/x)+Pi;
                else
                        return atan(y/x)-Pi;