2007-05-17 Cary R. <cygcary <at> yahoo.com>
* libm/math/w_atan2.c: Fix atan2 to be consistent with glibc (atan2(+0,-0), atan2(-0,-0) and atan(-0,+0)) * libm/math/wf_atan2.c: Ditto.
This commit is contained in:
parent
e0500490bc
commit
b2250c70bd
|
@ -1,3 +1,9 @@
|
|||
2007-05-17 Cary R. <cygcary <at> yahoo.com>
|
||||
|
||||
* libm/math/w_atan2.c: Fix atan2 to be consistent with glibc
|
||||
(atan2(+0,-0), atan2(-0,-0) and atan(-0,+0))
|
||||
* libm/math/wf_atan2.c: Ditto.
|
||||
|
||||
2007-05-17 Yaakov Selkowitz <yselkowitz <at> users.sourceforge.net>
|
||||
|
||||
* libm/common/Makefile.am: Add support for exp10, exp10f,
|
||||
|
|
|
@ -60,8 +60,6 @@ RETURNS
|
|||
$-\pi$ to $\pi$.
|
||||
@end tex
|
||||
|
||||
If both <[x]> and <[y]> are 0.0, <<atan2>> causes a <<DOMAIN>> error.
|
||||
|
||||
You can modify error handling for these functions using <<matherr>>.
|
||||
|
||||
PORTABILITY
|
||||
|
@ -86,32 +84,7 @@ PORTABILITY
|
|||
double y,x;
|
||||
#endif
|
||||
{
|
||||
#ifdef _IEEE_LIBM
|
||||
return __ieee754_atan2(y,x);
|
||||
#else
|
||||
double z;
|
||||
struct exception exc;
|
||||
z = __ieee754_atan2(y,x);
|
||||
if(_LIB_VERSION == _IEEE_||isnan(x)||isnan(y)) return z;
|
||||
if(x==0.0&&y==0.0) {
|
||||
/* atan2(+-0,+-0) */
|
||||
exc.arg1 = y;
|
||||
exc.arg2 = x;
|
||||
exc.type = DOMAIN;
|
||||
exc.name = "atan2";
|
||||
exc.err = 0;
|
||||
exc.retval = 0.0;
|
||||
if(_LIB_VERSION == _POSIX_)
|
||||
errno = EDOM;
|
||||
else if (!matherr(&exc)) {
|
||||
errno = EDOM;
|
||||
}
|
||||
if (exc.err != 0)
|
||||
errno = exc.err;
|
||||
return exc.retval;
|
||||
} else
|
||||
return z;
|
||||
#endif
|
||||
}
|
||||
|
||||
#endif /* defined(_DOUBLE_IS_32BITS) */
|
||||
|
|
|
@ -28,32 +28,7 @@
|
|||
float y,x;
|
||||
#endif
|
||||
{
|
||||
#ifdef _IEEE_LIBM
|
||||
return __ieee754_atan2f(y,x);
|
||||
#else
|
||||
float z;
|
||||
struct exception exc;
|
||||
z = __ieee754_atan2f(y,x);
|
||||
if(_LIB_VERSION == _IEEE_||isnanf(x)||isnanf(y)) return z;
|
||||
if(x==(float)0.0&&y==(float)0.0) {
|
||||
/* atan2f(+-0,+-0) */
|
||||
exc.arg1 = y;
|
||||
exc.arg2 = x;
|
||||
exc.err = 0;
|
||||
exc.type = DOMAIN;
|
||||
exc.name = "atan2f";
|
||||
exc.retval = 0.0;
|
||||
if(_LIB_VERSION == _POSIX_)
|
||||
errno = EDOM;
|
||||
else if (!matherr(&exc)) {
|
||||
errno = EDOM;
|
||||
}
|
||||
if (exc.err != 0)
|
||||
errno = exc.err;
|
||||
return (float)exc.retval;
|
||||
} else
|
||||
return z;
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef _DOUBLE_IS_32BITS
|
||||
|
|
Loading…
Reference in New Issue