diff options
author | Paul E. Murphy <murphyp@linux.vnet.ibm.com> | 2016-02-29 13:27:36 -0600 |
---|---|---|
committer | Paul E. Murphy <murphyp@linux.vnet.ibm.com> | 2016-03-31 12:14:33 -0500 |
commit | 37a4c70bd4c5c74ac562072e450dc02e8cb4c150 (patch) | |
tree | c9a631e747dcb7ca4213c93460d7e45d153a0771 /ChangeLog | |
parent | 830566307f038387ca0af3fd327706a8d1a2f595 (diff) | |
download | glibc-37a4c70bd4c5c74ac562072e450dc02e8cb4c150.tar.gz glibc-37a4c70bd4c5c74ac562072e450dc02e8cb4c150.tar.xz glibc-37a4c70bd4c5c74ac562072e450dc02e8cb4c150.zip |
Increase internal precision of ldbl-128ibm decimal printf [BZ #19853]
When the signs differ, the precision of the conversion sometimes drops below 106 bits. This strategy is identical to the hexadecimal variant. I've refactored tst-sprintf3 to enable testing a value with more than 30 significant digits in order to demonstrate this failure and its solution. Additionally, this implicitly fixes a typo in the shift quantities when subtracting from the high mantissa to compute the difference.
Diffstat (limited to 'ChangeLog')
-rw-r--r-- | ChangeLog | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog index 1a87d43e11..29dd164802 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,17 @@ +2016-03-31 Paul E. Murphy <murphyp@linux.vnet.ibm.com> + + [BZ #19853] + * stdio-common/tst-sprintf3.c [TEST_N]: Refactor + TEST to take significant digits as second parameter. + [TEST]: Redefine in terms of TEST_N taking 30 + significant digits. + (do_test): Add test case to demonstrate precision + failure in the ldbl-128ibm printf. + * sysdeps/ieee754/ldbl-128ibm/ldbl2pm.c: + (__mpn_extract_long_double): Carry 7 extra intermediate + bits of precision to aide computing difference when + signs differ. + 2016-03-31 H.J. Lu <hongjiu.lu@intel.com> [BZ #19881] |