diff options
author | Joseph Myers <joseph@codesourcery.com> | 2015-06-23 14:35:18 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2015-06-23 14:35:18 +0000 |
commit | b59549574efeeecf124de05c9183c120eaaa56f0 (patch) | |
tree | ae18151390fc556d7ad3fa74246b032ce9dd6db8 /NEWS | |
parent | b57525f1a376149840f740a31535681c07152ba4 (diff) | |
download | glibc-b59549574efeeecf124de05c9183c120eaaa56f0.tar.gz glibc-b59549574efeeecf124de05c9183c120eaaa56f0.tar.xz glibc-b59549574efeeecf124de05c9183c120eaaa56f0.zip |
Fix exp2, exp2f spurious underflows (bug 18219).
The dbl-64 and flt-32 implementations of exp2 functions produce spurious underflow exceptions. The underlying reason is the same in both cases: the computation works as (2^a - 1)*2^b + 2^b for suitably chosen a and b, where a has small magnitude so 2^a - 1 can be computed with a low-degree polynomial approximation, and (2^a - 1)*2^b can underflow even when the final result does not. This patch fixes this by adjusting the threshold for when scaling is used to avoid intermediate underflow so it works for any possible value of a where the final result would not underflow. Tested for x86_64 and x86. [BZ #18219] * sysdeps/ieee754/dbl-64/e_exp2.c (__ieee754_exp2): Reduce threshold on absolute value of exponent for which scaling is used. * sysdeps/ieee754/flt-32/e_exp2f.c (__ieee754_exp2f): Likewise. * math/auto-libm-test-in: Add more tests of exp2. * math/auto-libm-test-out: Regenerated.
Diffstat (limited to 'NEWS')
-rw-r--r-- | NEWS | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/NEWS b/NEWS index d1032510fb..42ebdd1af6 100644 --- a/NEWS +++ b/NEWS @@ -18,12 +18,12 @@ Version 2.22 17991, 17996, 17998, 17999, 18007, 18019, 18020, 18029, 18030, 18032, 18034, 18036, 18038, 18039, 18042, 18043, 18046, 18047, 18049, 18068, 18080, 18093, 18100, 18104, 18110, 18111, 18116, 18125, 18128, 18138, - 18185, 18196, 18197, 18206, 18210, 18211, 18217, 18220, 18221, 18234, - 18244, 18247, 18287, 18319, 18324, 18333, 18346, 18397, 18409, 18410, - 18412, 18418, 18422, 18434, 18444, 18468, 18469, 18470, 18479, 18483, - 18495, 18496, 18497, 18498, 18507, 18512, 18513, 18519, 18520, 18522, - 18527, 18528, 18529, 18530, 18532, 18533, 18534, 18536, 18539, 18540, - 18542, 18544, 18545, 18546, 18547, 18553, 18558, 18569. + 18185, 18196, 18197, 18206, 18210, 18211, 18217, 18219, 18220, 18221, + 18234, 18244, 18247, 18287, 18319, 18324, 18333, 18346, 18397, 18409, + 18410, 18412, 18418, 18422, 18434, 18444, 18468, 18469, 18470, 18479, + 18483, 18495, 18496, 18497, 18498, 18507, 18512, 18513, 18519, 18520, + 18522, 18527, 18528, 18529, 18530, 18532, 18533, 18534, 18536, 18539, + 18540, 18542, 18544, 18545, 18546, 18547, 18553, 18558, 18569. * Cache information can be queried via sysconf() function on s390 e.g. with _SC_LEVEL1_ICACHE_SIZE as argument. |