Joseph Myers
fa752c6981
Fix powf inaccuracy (bug 18956).
...
The flt-32 version of powf can be inaccurate because of bugs in the
extra-precision calculation of (x-1)/(x+1) or (x-1.5)/(x+1.5) as part
of calculating log(x) with extra precision: a constant used (as part
of adding 1 or 1.5 through integer arithmetic) is incorrect, and then
the code fails to mask a computed high part before using it in
arithmetic that relies on s_h*t_h being exactly representable. This
patch fixes these bugs.
Tested for x86_64 and x86. x86_64 ulps for powf removed and
regenerated to reflect reduced ulps from the increased accuracy for
existing tests.
[BZ #18956 ]
* sysdeps/ieee754/flt-32/e_powf.c (__ieee754_powf): Add 0x00400000
not 0x0040000 for high bit of mantissa. Mask with 0xfffff000 when
extracting high part.
* math/auto-libm-test-in: Add another test of pow.
* math/auto-libm-test-out: Regenerated.
* sysdeps/x86_64/fpu/libm-test-ulps: Update.
2015-09-26 00:27:06 +00:00
..
2015-09-24 16:48:32 +00:00
2015-09-24 22:25:30 +00:00
2015-01-02 16:29:47 +00:00
2015-09-24 22:25:30 +00:00
2015-09-25 22:29:10 +00:00
2015-02-24 17:30:02 +00:00
2015-01-02 16:29:47 +00:00
2015-01-02 16:29:47 +00:00
2015-01-02 16:29:47 +00:00
2015-01-02 16:29:47 +00:00
2015-01-02 16:29:47 +00:00
2015-01-02 16:29:47 +00:00
2015-01-02 16:29:47 +00:00
2015-01-02 20:44:42 +00:00
2015-01-05 23:06:14 +00:00
2015-01-06 23:36:20 +00:00
2015-01-07 00:41:23 +00:00
2015-01-07 19:01:20 +00:00
2015-01-02 16:29:47 +00:00
2015-01-02 16:29:47 +00:00
2015-01-02 16:29:47 +00:00
2015-01-02 16:29:47 +00:00
2015-09-26 00:27:06 +00:00
2015-08-13 03:41:47 -07:00
2015-08-13 03:41:47 -07:00
2015-01-02 16:29:47 +00:00
2015-01-02 16:29:47 +00:00
2015-01-02 16:29:47 +00:00
2015-08-05 08:36:27 -07:00
2015-01-02 16:29:47 +00:00
2015-01-02 16:29:47 +00:00
2015-01-02 16:29:47 +00:00
2015-01-02 16:29:47 +00:00
2015-01-02 16:29:47 +00:00
2015-01-02 16:29:47 +00:00
2015-01-02 16:29:47 +00:00
2015-01-02 16:29:47 +00:00
2015-01-02 16:29:47 +00:00
2015-01-02 16:29:47 +00:00
2015-01-02 16:29:47 +00:00
2015-01-02 16:29:47 +00:00
2015-01-02 16:29:47 +00:00
2015-04-13 21:19:27 +02:00
2015-09-16 21:11:00 +00:00
2015-01-02 16:29:47 +00:00
2015-01-02 16:29:47 +00:00
2015-08-05 08:36:27 -07:00
2015-08-05 08:36:27 -07:00
2015-01-02 16:29:47 +00:00
2015-06-23 19:21:50 +03:00
2015-06-09 14:25:49 +03:00
2015-06-23 19:21:50 +03:00
2015-06-23 19:21:50 +03:00
2015-06-17 15:58:05 +03:00
2015-06-17 15:58:05 +03:00
2015-06-17 15:58:05 +03:00
2015-06-17 15:58:05 +03:00
2015-06-17 15:58:05 +03:00
2015-06-17 15:58:05 +03:00
2015-06-17 15:38:29 +03:00
2015-06-17 15:38:29 +03:00
2015-06-17 15:38:29 +03:00
2015-06-17 15:38:29 +03:00
2015-06-17 15:38:29 +03:00
2015-06-17 15:38:29 +03:00
2015-06-17 16:22:26 +03:00
2015-06-17 16:22:26 +03:00
2015-06-17 16:22:26 +03:00
2015-06-17 16:22:26 +03:00
2015-06-17 16:22:26 +03:00
2015-06-17 16:22:26 +03:00
2015-06-11 17:12:38 +03:00
2015-06-11 17:12:38 +03:00
2015-06-11 17:12:38 +03:00
2015-06-11 17:12:38 +03:00
2015-06-18 17:55:55 +03:00
2015-06-18 17:55:55 +03:00
2015-06-18 17:55:55 +03:00
2015-06-18 17:55:55 +03:00
2015-06-23 19:21:50 +03:00
2015-06-23 19:21:50 +03:00
2015-07-24 14:47:23 +03:00
2015-06-09 18:29:47 +03:00
2015-06-09 18:29:47 +03:00
2015-06-09 18:29:47 +03:00
2015-06-09 18:29:47 +03:00
2015-06-17 16:10:51 +03:00
2015-06-17 16:10:51 +03:00
2015-06-17 16:10:51 +03:00
2015-06-17 16:10:51 +03:00
2015-06-17 16:10:51 +03:00
2015-06-17 16:10:51 +03:00
2015-06-17 15:53:00 +03:00
2015-06-17 15:53:00 +03:00
2015-06-17 15:53:00 +03:00
2015-06-17 15:53:00 +03:00
2015-06-17 15:53:00 +03:00
2015-06-17 15:53:00 +03:00
2015-06-18 17:04:07 +03:00
2015-06-18 17:04:07 +03:00
2015-06-18 17:04:07 +03:00
2015-06-18 17:04:07 +03:00
2015-06-18 17:04:07 +03:00
2015-06-18 17:04:07 +03:00
2015-06-18 20:11:27 +03:00
2015-06-18 20:11:27 +03:00
2015-06-18 20:11:27 +03:00
2015-06-18 20:11:27 +03:00
2015-06-15 15:06:53 +03:00
2015-06-15 15:06:53 +03:00
2015-06-15 15:06:53 +03:00
2015-06-15 15:06:53 +03:00
2015-06-24 17:44:35 +03:00
2015-06-24 17:44:35 +03:00
2015-07-24 14:47:23 +03:00
2015-06-24 23:27:18 +00:00
2015-06-18 17:55:55 +03:00
2015-06-24 23:27:18 +00:00
2015-06-18 17:55:55 +03:00
2015-06-24 23:27:18 +00:00
2015-07-29 19:47:29 +03:00
2015-06-24 23:27:18 +00:00
2015-06-18 17:55:55 +03:00
2015-06-24 23:27:18 +00:00
2015-06-18 20:11:27 +03:00
2015-06-24 23:27:18 +00:00
2015-06-18 20:11:27 +03:00
2015-06-24 23:27:18 +00:00
2015-07-29 19:47:29 +03:00
2015-06-24 23:27:18 +00:00
2015-06-18 20:11:27 +03:00
2015-06-18 20:11:27 +03:00
2015-09-25 22:29:10 +00:00