]> www.ginac.de Git - ginac.git/blobdiff - ginac/inifcns_trans.cpp
Fixed a bug in atan2. It gave a division by zero error for calls like
[ginac.git] / ginac / inifcns_trans.cpp
index 57d13025c3447be0bba4206e910249f70dc5f618..3f161d218c068e2a4d016fce5d5cfcb2d32f789e 100644 (file)
@@ -4,7 +4,7 @@
  *  functions. */
 
 /*
- *  GiNaC Copyright (C) 1999-2008 Johannes Gutenberg University Mainz, Germany
+ *  GiNaC Copyright (C) 1999-2010 Johannes Gutenberg University Mainz, Germany
  *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
@@ -21,9 +21,6 @@
  *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
-#include <vector>
-#include <stdexcept>
-
 #include "inifcns.h"
 #include "ex.h"
 #include "constant.h"
@@ -35,6 +32,9 @@
 #include "pseries.h"
 #include "utils.h"
 
+#include <stdexcept>
+#include <vector>
+
 namespace GiNaC {
 
 //////////
@@ -842,7 +842,7 @@ static ex atan2_eval(const ex & y, const ex & x)
                        return _ex1_2*Pi;
 
                // atan(y, 0), y real and negative -> -Pi/2
-               if (y.info(info_flags::negative))
+               if (y.info(info_flags::real) && !y.is_zero())
                        return _ex_1_2*Pi;
        }