Fix ldbl-128ibm acoshl inaccuracy (bug 16384).

This patch fixes bug 16384, ldbl-128ibm acoshl inaccuracy, which
showed up while attempting to regenerate ulps for powerpc-nofpu for
2.19.  There were two separate problems, use of __log1p instead of
__log1pl and an insufficiently accurate constant value for log 2
(which this patch replaces by use of M_LN2l), each of which could
cause substantial inaccuracy in affected cases.

Tested for powerpc-nofpu.

	* sysdeps/ieee754/ldbl-128ibm/e_acoshl.c (ln2): Initialize with
	M_LN2l.
	(__ieee754_acoshl): Use __log1pl not __log1p.
This commit is contained in:
Joseph Myers 2014-01-02 16:33:06 +00:00
parent 6c8dbf00f5
commit 396e3ecf3e
3 changed files with 10 additions and 3 deletions

View File

@ -1,3 +1,10 @@
2014-01-02 Joseph Myers <joseph@codesourcery.com>
[BZ #16384]
* sysdeps/ieee754/ldbl-128ibm/e_acoshl.c (ln2): Initialize with
M_LN2l.
(__ieee754_acoshl): Use __log1pl not __log1p.
2013-01-02 Ondřej Bílka <neleai@seznam.cz>
* malloc/arena.c (malloc_atfork, free_atfork, ptmalloc_lock_all,

2
NEWS
View File

@ -23,7 +23,7 @@ Version 2.19
16038, 16041, 16055, 16071, 16072, 16074, 16077, 16078, 16103, 16112,
16143, 16144, 16146, 16150, 16151, 16153, 16167, 16172, 16195, 16214,
16245, 16271, 16274, 16283, 16289, 16293, 16314, 16316, 16330, 16337,
16338, 16356, 16365, 16366, 16369, 16372, 16375, 16379.
16338, 16356, 16365, 16366, 16369, 16372, 16375, 16379, 16384.
* Slovenian translations for glibc messages have been contributed by the
Translation Project's Slovenian team of translators.

View File

@ -29,7 +29,7 @@
static const long double
one = 1.0L,
ln2 = 6.93147180559945286227e-01L; /* 0x3FE62E42, 0xFEFA39EF */
ln2 = M_LN2l;
long double
__ieee754_acoshl(long double x)
@ -56,7 +56,7 @@ __ieee754_acoshl(long double x)
return __ieee754_logl(2.0*x-one/(x+__ieee754_sqrtl(t-one)));
} else { /* 1<x<2 */
t = x-one;
return __log1p(t+__ieee754_sqrtl(2.0*t+t*t));
return __log1pl(t+__ieee754_sqrtl(2.0*t+t*t));
}
}
strong_alias (__ieee754_acoshl, __acoshl_finite)