[Python-checkins] cpython (merge 3.3 -> default): Issue #18513: Add workaround for OS X 10.8 cexp bug that leads to wrong

mark.dickinson python-checkins at python.org
Sat Jul 20 19:00:29 CEST 2013


http://hg.python.org/cpython/rev/ae769deb45b2
changeset:   84737:ae769deb45b2
parent:      84735:e7305517260b
parent:      84736:ce771c2d0220
user:        Mark Dickinson <dickinsm at gmail.com>
date:        Sat Jul 20 18:00:06 2013 +0100
summary:
  Issue #18513: Add workaround for OS X 10.8 cexp bug that leads to wrong cmath.rect(0.0,-0.0) results.

files:
  Misc/NEWS             |  3 +++
  Modules/cmathmodule.c |  7 +++++++
  2 files changed, 10 insertions(+), 0 deletions(-)


diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -159,6 +159,9 @@
 Library
 -------
 
+- Issue #18513: Fix behaviour of cmath.rect w.r.t. signed zeros on OS X 10.8 +
+  gcc.
+
 - Issue #18479: Changed venv Activate.ps1 to make deactivate a function, and
   removed Deactivate.ps1.
 
diff --git a/Modules/cmathmodule.c b/Modules/cmathmodule.c
--- a/Modules/cmathmodule.c
+++ b/Modules/cmathmodule.c
@@ -1006,6 +1006,13 @@
         else
             errno = 0;
     }
+    else if (phi == 0.0) {
+        /* Workaround for buggy results with phi=-0.0 on OS X 10.8.  See
+           bugs.python.org/issue18513. */
+        z.real = r;
+        z.imag = r * phi;
+        errno = 0;
+    }
     else {
         z.real = r * cos(phi);
         z.imag = r * sin(phi);

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list