summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Modules/cmathmodule.c20
-rw-r--r--Modules/mathmodule.c18
-rw-r--r--Objects/complexobject.c18
-rw-r--r--README5
-rw-r--r--acconfig.h2
-rw-r--r--pyconfig.h.in2
6 files changed, 9 insertions, 56 deletions
diff --git a/Modules/cmathmodule.c b/Modules/cmathmodule.c
index 34b0ce8..adf76b8 100644
--- a/Modules/cmathmodule.c
+++ b/Modules/cmathmodule.c
@@ -8,22 +8,6 @@
#define M_PI (3.141592653589793239)
#endif
-#ifdef SCO_ATAN2_BUG
-/*
- * UnixWare 7+ is known to have a bug in atan2 that will return PI instead
- * of ZERO (0) if the first argument is ZERO(0).
- */
-static double atan2_sco(double x, double y)
-{
- if (x == 0.0)
- return (double)0.0;
- return atan2(x, y);
-}
-#define ATAN2 atan2_sco
-#else
-#define ATAN2 atan2
-#endif
-
/* First, the C functions that do the real work */
/* constants */
@@ -175,7 +159,7 @@ c_log(Py_complex x)
{
Py_complex r;
double l = hypot(x.real,x.imag);
- r.imag = ATAN2(x.imag, x.real);
+ r.imag = atan2(x.imag, x.real);
r.real = log(l);
return r;
}
@@ -191,7 +175,7 @@ c_log10(Py_complex x)
{
Py_complex r;
double l = hypot(x.real,x.imag);
- r.imag = ATAN2(x.imag, x.real)/log(10.);
+ r.imag = atan2(x.imag, x.real)/log(10.);
r.real = log10(l);
return r;
}
diff --git a/Modules/mathmodule.c b/Modules/mathmodule.c
index 379fecb..4609f60 100644
--- a/Modules/mathmodule.c
+++ b/Modules/mathmodule.c
@@ -12,22 +12,6 @@ extern double modf (double, double *);
#endif /* __STDC__ */
#endif /* _MSC_VER */
-#ifdef SCO_ATAN2_BUG
-/*
- * UnixWare 7+ is known to have a bug in atan2 that will return PI instead
- * of ZERO (0) if the first argument is ZERO(0).
- */
-static double atan2_sco(double x, double y)
-{
- if (x == 0.0)
- return (double)0.0;
- return atan2(x, y);
-}
-#define ATAN2 atan2_sco
-#else
-#define ATAN2 atan2
-#endif
-
/* Call is_error when errno != 0, and where x is the result libm
* returned. is_error will usually set up an exception and return
* true (1), but may return false (0) without setting up an exception.
@@ -115,7 +99,7 @@ FUNC1(asin, asin,
"asin(x)\n\nReturn the arc sine (measured in radians) of x.")
FUNC1(atan, atan,
"atan(x)\n\nReturn the arc tangent (measured in radians) of x.")
-FUNC2(atan2, ATAN2,
+FUNC2(atan2, atan2,
"atan2(y, x)\n\nReturn the arc tangent (measured in radians) of y/x.\n"
"Unlike atan(y/x), the signs of both x and y are considered.")
FUNC1(ceil, ceil,
diff --git a/Objects/complexobject.c b/Objects/complexobject.c
index dde6449..7404993 100644
--- a/Objects/complexobject.c
+++ b/Objects/complexobject.c
@@ -26,22 +26,6 @@
#define PREC_REPR 17
#define PREC_STR 12
-#ifdef SCO_ATAN2_BUG
-/*
- * UnixWare 7+ is known to have a bug in atan2 that will return PI instead
- * of ZERO (0) if the first argument is ZERO(0).
- */
-static double atan2_sco(double x, double y)
-{
- if (x == 0.0)
- return (double)0.0;
- return atan2(x, y);
-}
-#define ATAN2 atan2_sco
-#else
-#define ATAN2 atan2
-#endif
-
/* elementary operations on complex numbers */
static Py_complex c_1 = {1., 0.};
@@ -154,7 +138,7 @@ c_pow(Py_complex a, Py_complex b)
else {
vabs = hypot(a.real,a.imag);
len = pow(vabs,b.real);
- at = ATAN2(a.imag, a.real);
+ at = atan2(a.imag, a.real);
phase = at*b.real;
if (b.imag != 0.0) {
len /= exp(at*b.imag);
diff --git a/README b/README
index 59c969e..ee9e5d2 100644
--- a/README
+++ b/README
@@ -296,6 +296,11 @@ SCO: The following apply to SCO 3 only; Python builds out of the box
LIBS=' -lsocket -lcrypt_i'
+UnixWare: There are known bugs in the math library of the system, as well as
+ problems in the handling of threads (calling fork in one
+ thread may interrupt system calls in others). Therefore, test_math and
+ tests involving threads will fail until those problems are fixed.
+
SunOS 4.x: When using the SunPro C compiler, you may want to use the
'-Xa' option instead of '-Xc', to enable some needed non-ANSI
Sunisms.
diff --git a/acconfig.h b/acconfig.h
index 8432f1f..ffe65aa 100644
--- a/acconfig.h
+++ b/acconfig.h
@@ -245,8 +245,6 @@
/* Define the macros needed if on a UnixWare 7.x system. */
#if defined(__USLC__) && defined(__SCO_VERSION__)
-#define SCO_ACCEPT_BUG /* Use workaround for UnixWare accept() bug */
-#define SCO_ATAN2_BUG /* Use workaround for UnixWare atan2() bug */
#define STRICT_SYSV_CURSES /* Don't use ncurses extensions */
#endif
diff --git a/pyconfig.h.in b/pyconfig.h.in
index 662955f..4ed22eb 100644
--- a/pyconfig.h.in
+++ b/pyconfig.h.in
@@ -725,8 +725,6 @@
/* Define the macros needed if on a UnixWare 7.x system. */
#if defined(__USLC__) && defined(__SCO_VERSION__)
-#define SCO_ACCEPT_BUG /* Use workaround for UnixWare accept() bug */
-#define SCO_ATAN2_BUG /* Use workaround for UnixWare atan2() bug */
#define STRICT_SYSV_CURSES /* Don't use ncurses extensions */
#endif