[Python-checkins] CVS: python/dist/src/Objects complexobject.c,2.42,2.43

Martin v. L?wis loewis@users.sourceforge.net
2001年9月05日 07:45:56 -0700


Update of /cvsroot/python/python/dist/src/Objects
In directory usw-pr-cvs1:/tmp/cvs-serv12367/Objects
Modified Files:
	complexobject.c 
Log Message:
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.
Index: complexobject.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Objects/complexobject.c,v
retrieving revision 2.42
retrieving revision 2.43
diff -C2 -d -r2.42 -r2.43
*** complexobject.c	2001年09月04日 05:14:19	2.42
--- complexobject.c	2001年09月05日 14:45:54	2.43
***************
*** 27,30 ****
--- 27,46 ----
 #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 */
 
***************
*** 139,143 ****
 		vabs = hypot(a.real,a.imag);
 		len = pow(vabs,b.real);
! 		at = atan2(a.imag, a.real);
 		phase = at*b.real;
 		if (b.imag != 0.0) {
--- 155,159 ----
 		vabs = hypot(a.real,a.imag);
 		len = pow(vabs,b.real);
! 		at = ATAN2(a.imag, a.real);
 		phase = at*b.real;
 		if (b.imag != 0.0) {

AltStyle によって変換されたページ (->オリジナル) /