Kaydet (Commit) 387c547f authored tarafından Martin v. Löwis's avatar Martin v. Löwis

Revert parts of patch #453627, documenting the resulting test failures

instead.
üst c2d272a1
...@@ -8,22 +8,6 @@ ...@@ -8,22 +8,6 @@
#define M_PI (3.141592653589793239) #define M_PI (3.141592653589793239)
#endif #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 */ /* First, the C functions that do the real work */
/* constants */ /* constants */
...@@ -175,7 +159,7 @@ c_log(Py_complex x) ...@@ -175,7 +159,7 @@ c_log(Py_complex x)
{ {
Py_complex r; Py_complex r;
double l = hypot(x.real,x.imag); 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); r.real = log(l);
return r; return r;
} }
...@@ -191,7 +175,7 @@ c_log10(Py_complex x) ...@@ -191,7 +175,7 @@ c_log10(Py_complex x)
{ {
Py_complex r; Py_complex r;
double l = hypot(x.real,x.imag); 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); r.real = log10(l);
return r; return r;
} }
......
...@@ -12,22 +12,6 @@ extern double modf (double, double *); ...@@ -12,22 +12,6 @@ extern double modf (double, double *);
#endif /* __STDC__ */ #endif /* __STDC__ */
#endif /* _MSC_VER */ #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 /* Call is_error when errno != 0, and where x is the result libm
* returned. is_error will usually set up an exception and return * returned. is_error will usually set up an exception and return
* true (1), but may return false (0) without setting up an exception. * true (1), but may return false (0) without setting up an exception.
...@@ -115,7 +99,7 @@ FUNC1(asin, asin, ...@@ -115,7 +99,7 @@ FUNC1(asin, asin,
"asin(x)\n\nReturn the arc sine (measured in radians) of x.") "asin(x)\n\nReturn the arc sine (measured in radians) of x.")
FUNC1(atan, atan, FUNC1(atan, atan,
"atan(x)\n\nReturn the arc tangent (measured in radians) of x.") "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" "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.") "Unlike atan(y/x), the signs of both x and y are considered.")
FUNC1(ceil, ceil, FUNC1(ceil, ceil,
......
...@@ -26,22 +26,6 @@ ...@@ -26,22 +26,6 @@
#define PREC_REPR 17 #define PREC_REPR 17
#define PREC_STR 12 #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 */ /* elementary operations on complex numbers */
static Py_complex c_1 = {1., 0.}; static Py_complex c_1 = {1., 0.};
...@@ -154,7 +138,7 @@ c_pow(Py_complex a, Py_complex b) ...@@ -154,7 +138,7 @@ c_pow(Py_complex a, Py_complex b)
else { else {
vabs = hypot(a.real,a.imag); vabs = hypot(a.real,a.imag);
len = pow(vabs,b.real); len = pow(vabs,b.real);
at = ATAN2(a.imag, a.real); at = atan2(a.imag, a.real);
phase = at*b.real; phase = at*b.real;
if (b.imag != 0.0) { if (b.imag != 0.0) {
len /= exp(at*b.imag); len /= exp(at*b.imag);
......
...@@ -296,6 +296,11 @@ SCO: The following apply to SCO 3 only; Python builds out of the box ...@@ -296,6 +296,11 @@ SCO: The following apply to SCO 3 only; Python builds out of the box
LIBS=' -lsocket -lcrypt_i' 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 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 '-Xa' option instead of '-Xc', to enable some needed non-ANSI
Sunisms. Sunisms.
......
...@@ -245,8 +245,6 @@ ...@@ -245,8 +245,6 @@
/* Define the macros needed if on a UnixWare 7.x system. */ /* Define the macros needed if on a UnixWare 7.x system. */
#if defined(__USLC__) && defined(__SCO_VERSION__) #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 */ #define STRICT_SYSV_CURSES /* Don't use ncurses extensions */
#endif #endif
...@@ -725,8 +725,6 @@ ...@@ -725,8 +725,6 @@
/* Define the macros needed if on a UnixWare 7.x system. */ /* Define the macros needed if on a UnixWare 7.x system. */
#if defined(__USLC__) && defined(__SCO_VERSION__) #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 */ #define STRICT_SYSV_CURSES /* Don't use ncurses extensions */
#endif #endif
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment