From 8ea587db2b0bb5cd3e527982f7a1499748a987c3 Mon Sep 17 00:00:00 2001 From: Stefan Liebler Date: Wed, 16 Apr 2014 12:52:52 +0200 Subject: [PATCH] [BZ #16824] Fix failing y1 due to too large ulps in downward/upward rounding mode. --- ChangeLog | 6 ++++++ NEWS | 2 +- sysdeps/ieee754/ldbl-128/e_j1l.c | 1 + 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 4a71410659..a4eba04b7c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2014-04-16 Stefan Liebler + + [BZ #16824] + * sysdeps/ieee754/ldbl-128/e_j1l.c (__ieee754_y1l): + Set round-to-nearest internally to reduce error accumulation. + 2014-04-16 Alan Modra [BZ #16740] diff --git a/NEWS b/NEWS index 867a3d6199..6a6580997e 100644 --- a/NEWS +++ b/NEWS @@ -14,7 +14,7 @@ Version 2.20 16610, 16611, 16613, 16619, 16623, 16632, 16634, 16639, 16642, 16648, 16649, 16670, 16674, 16677, 16680, 16683, 16689, 16695, 16701, 16706, 16707, 16712, 16713, 16714, 16731, 16739, 16740, 16743, 16758, 16759, - 16760, 16770, 16786, 16789, 16799, 16800, 16815, 16831, 16838. + 16760, 16770, 16786, 16789, 16799, 16800, 16815, 16824, 16831, 16838. * Running the testsuite no longer terminates as soon as a test fails. Instead, a file tests.sum (xtests.sum from "make xcheck") is generated, diff --git a/sysdeps/ieee754/ldbl-128/e_j1l.c b/sysdeps/ieee754/ldbl-128/e_j1l.c index 70a1c86fd2..1264c95d49 100644 --- a/sysdeps/ieee754/ldbl-128/e_j1l.c +++ b/sysdeps/ieee754/ldbl-128/e_j1l.c @@ -856,6 +856,7 @@ __ieee754_y1l (long double x) if (xx <= 2.0L) { /* 0 <= x <= 2 */ + SET_RESTORE_ROUNDL (FE_TONEAREST); z = xx * xx; p = xx * neval (z, Y0_2N, NY0_2N) / deval (z, Y0_2D, NY0_2D); p = -TWOOPI / xx + p;