mirror of
https://gitlab.com/embeddable-common-lisp/ecl.git
synced 2026-01-24 05:21:20 -08:00
Revert "atan: fix if-clause order to work on signed zero (2)"
This reverts commit 4ba367531e.
This commit is contained in:
parent
819861c815
commit
17fc9b51b2
1 changed files with 18 additions and 20 deletions
|
|
@ -23,28 +23,28 @@ static double
|
|||
ecl_atan2_double(double y, double x)
|
||||
{
|
||||
if (x == 0) {
|
||||
if (y == 0) {
|
||||
if (signbit(y)) {
|
||||
return -ECL_PI2_D;
|
||||
} else if (y == 0) {
|
||||
/* Signals floating-point-invalid-operation. If not trapped,
|
||||
produces NaN. */
|
||||
return x / y;
|
||||
} else if (signbit(y)) {
|
||||
return -ECL_PI2_D;
|
||||
} else {
|
||||
return ECL_PI2_D;
|
||||
}
|
||||
} else if (signbit(x)) {
|
||||
if (y == 0) {
|
||||
return ECL_PI_D;
|
||||
} else if (signbit(y)) {
|
||||
if (signbit(y)) {
|
||||
return -ECL_PI_D + atan(-y / -x);
|
||||
} else if (y == 0) {
|
||||
return ECL_PI_D;
|
||||
} else {
|
||||
return ECL_PI_D - atan(y / -x);
|
||||
}
|
||||
} else {
|
||||
if (y == 0) {
|
||||
return (double)0;
|
||||
} else if (signbit(y)) {
|
||||
if (signbit(y)) {
|
||||
return -atan(-y / x);
|
||||
} else if (y == 0) {
|
||||
return (double)0;
|
||||
} else {
|
||||
return atan(y / x);
|
||||
}
|
||||
|
|
@ -56,31 +56,29 @@ static long double
|
|||
ecl_atan2_long_double(long double y, long double x)
|
||||
{
|
||||
if (x == 0) {
|
||||
if (y == 0) {
|
||||
if (signbit(y)) {
|
||||
return -ECL_PI2_L;
|
||||
} else if (y == 0) {
|
||||
/* Signals floating-point-invalid-operation. If not trapped,
|
||||
produces NaN. */
|
||||
return x / y;
|
||||
}
|
||||
else if (signbit(y)) {
|
||||
return -ECL_PI2_L;
|
||||
} else {
|
||||
return ECL_PI2_L;
|
||||
}
|
||||
}
|
||||
else if (signbit(x)) {
|
||||
if (y == 0) {
|
||||
return ECL_PI_L;
|
||||
}
|
||||
else if (signbit(y)) {
|
||||
if (signbit(y)) {
|
||||
return -ECL_PI_L + atanl(-y / -x);
|
||||
} else if (y == 0) {
|
||||
return ECL_PI_L;
|
||||
} else {
|
||||
return ECL_PI_L - atanl(y / -x);
|
||||
}
|
||||
} else {
|
||||
if (y == 0) {
|
||||
return (long double)0;
|
||||
} else if (signbit(y)) {
|
||||
if (signbit(y)) {
|
||||
return -atanl(-y / x);
|
||||
} else if (y == 0) {
|
||||
return (long double)0;
|
||||
} else {
|
||||
return atanl(y / x);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue