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 glibc-37a4c70bd4c5c74ac562072e450dc02e8cb4c150.tar.gz glibc-37a4c70bd4c5c74ac562072e450dc02e8cb4c150.tar.bz2 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
@@ -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] |