diff options
author | joseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d> | 2013-11-06 23:03:08 +0000 |
---|---|---|
committer | joseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d> | 2013-11-06 23:03:08 +0000 |
commit | 036dfd44bcc8ed8e97dcd9c763f61d3b59796941 (patch) | |
tree | 27fe47c83800c73d61262ea4e70b211f6753e516 /libc/sysdeps/ieee754/dbl-64/sincos32.c | |
parent | fe2ed5aaa408e1ab996a9fe1595a05634208a79c (diff) | |
download | eglibc2-036dfd44bcc8ed8e97dcd9c763f61d3b59796941.tar.gz |
Merge changes between r24305 and r24468 from /fsf/trunk.
git-svn-id: svn://svn.eglibc.org/trunk@24469 7b3dc134-2b1b-0410-93df-9e9f96275f8d
Diffstat (limited to 'libc/sysdeps/ieee754/dbl-64/sincos32.c')
-rw-r--r-- | libc/sysdeps/ieee754/dbl-64/sincos32.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/libc/sysdeps/ieee754/dbl-64/sincos32.c b/libc/sysdeps/ieee754/dbl-64/sincos32.c index f253b8ce8..49aa14895 100644 --- a/libc/sysdeps/ieee754/dbl-64/sincos32.c +++ b/libc/sysdeps/ieee754/dbl-64/sincos32.c @@ -147,10 +147,9 @@ __sin32 (double x, double res, double res1) __dbl_mp (x, &c, p); /* c = x */ __sub (&b, &c, &a, p); /* if a > 0 return min (res, res1), otherwise return max (res, res1). */ - if (a.d[0] > 0) - return (res < res1) ? res : res1; - else - return (res > res1) ? res : res1; + if ((a.d[0] > 0 && res >= res1) || (a.d[0] <= 0 && res <= res1)) + res = res1; + return res; } /* Receive double x and two double results of cos(x) and return result which is @@ -181,10 +180,9 @@ __cos32 (double x, double res, double res1) __dbl_mp (x, &c, p); /* c = x */ __sub (&b, &c, &a, p); /* if a > 0 return max (res, res1), otherwise return min (res, res1). */ - if (a.d[0] > 0) - return (res > res1) ? res : res1; - else - return (res < res1) ? res : res1; + if ((a.d[0] > 0 && res <= res1) || (a.d[0] <= 0 && res >= res1)) + res = res1; + return res; } /* Compute sin() of double-length number (X + DX) as Multi Precision number and |