mirror of git://sourceware.org/git/glibc.git
Fix ldbl-128ibm asinhl inaccuracy (bug 16385).
This patch fixes bug 16385, ldbl-128ibm asinhl inaccuracy, which showed up while attempting to regenerate ulps for powerpc-nofpu for 2.19. The problem here was use of fabs instead of fabsl meaning large arguments were reduced to the precision of double. Tested for powerpc-nofpu. * sysdeps/ieee754/ldbl-128ibm/s_asinhl.c (__asinhl): Use fabsl not fabs.
This commit is contained in:
parent
396e3ecf3e
commit
90b6a1e55f
|
@ -1,5 +1,9 @@
|
||||||
2014-01-02 Joseph Myers <joseph@codesourcery.com>
|
2014-01-02 Joseph Myers <joseph@codesourcery.com>
|
||||||
|
|
||||||
|
[BZ #16385]
|
||||||
|
* sysdeps/ieee754/ldbl-128ibm/s_asinhl.c (__asinhl): Use fabsl not
|
||||||
|
fabs.
|
||||||
|
|
||||||
[BZ #16384]
|
[BZ #16384]
|
||||||
* sysdeps/ieee754/ldbl-128ibm/e_acoshl.c (ln2): Initialize with
|
* sysdeps/ieee754/ldbl-128ibm/e_acoshl.c (ln2): Initialize with
|
||||||
M_LN2l.
|
M_LN2l.
|
||||||
|
|
2
NEWS
2
NEWS
|
@ -23,7 +23,7 @@ Version 2.19
|
||||||
16038, 16041, 16055, 16071, 16072, 16074, 16077, 16078, 16103, 16112,
|
16038, 16041, 16055, 16071, 16072, 16074, 16077, 16078, 16103, 16112,
|
||||||
16143, 16144, 16146, 16150, 16151, 16153, 16167, 16172, 16195, 16214,
|
16143, 16144, 16146, 16150, 16151, 16153, 16167, 16172, 16195, 16214,
|
||||||
16245, 16271, 16274, 16283, 16289, 16293, 16314, 16316, 16330, 16337,
|
16245, 16271, 16274, 16283, 16289, 16293, 16314, 16316, 16330, 16337,
|
||||||
16338, 16356, 16365, 16366, 16369, 16372, 16375, 16379, 16384.
|
16338, 16356, 16365, 16366, 16369, 16372, 16375, 16379, 16384, 16385.
|
||||||
|
|
||||||
* Slovenian translations for glibc messages have been contributed by the
|
* Slovenian translations for glibc messages have been contributed by the
|
||||||
Translation Project's Slovenian team of translators.
|
Translation Project's Slovenian team of translators.
|
||||||
|
|
|
@ -48,7 +48,7 @@ long double __asinhl(long double x)
|
||||||
if(huge+x>one) return x; /* return x inexact except 0 */
|
if(huge+x>one) return x; /* return x inexact except 0 */
|
||||||
}
|
}
|
||||||
if(ix>0x41b0000000000000LL) { /* |x| > 2**28 */
|
if(ix>0x41b0000000000000LL) { /* |x| > 2**28 */
|
||||||
w = __ieee754_logl(fabs(x))+ln2;
|
w = __ieee754_logl(fabsl(x))+ln2;
|
||||||
} else if (ix>0x4000000000000000LL) { /* 2**28 > |x| > 2.0 */
|
} else if (ix>0x4000000000000000LL) { /* 2**28 > |x| > 2.0 */
|
||||||
t = fabs(x);
|
t = fabs(x);
|
||||||
w = __ieee754_logl(2.0*t+one/(__ieee754_sqrtl(x*x+one)+t));
|
w = __ieee754_logl(2.0*t+one/(__ieee754_sqrtl(x*x+one)+t));
|
||||||
|
|
Loading…
Reference in New Issue