Mercurial > cpython-lru_cache-weakref
diff Modules/mathmodule.c @ 19730:2e6da2dd2ab8 legacy-trunk
Patch #453627: Define the following macros when compiling on a UnixWare 7.x system:
SCO_ATAN2_BUG, SCO_ACCEPT_BUG, and STRICT_SYSV_CURSES.
Work aroudn a bug in the SCO UnixWare atan2() implementation.
| author | Martin v. Löwis <martin@v.loewis.de> |
|---|---|
| date | Wed, 05 Sep 2001 14:45:54 +0000 |
| parents | fb2d83aaff68 |
| children | 35b6a1d0b1e0 |
line wrap: on
line diff
--- a/Modules/mathmodule.c Wed Sep 05 14:38:48 2001 +0000 +++ b/Modules/mathmodule.c Wed Sep 05 14:45:54 2001 +0000 @@ -31,6 +31,22 @@ #define CHECK(x) /* Don't know how to check */ #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 + /* 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 +131,7 @@ "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,
