aboutsummaryrefslogtreecommitdiff
path: root/ChangeLog
diff options
context:
space:
mode:
authorPaul E. Murphy <murphyp@linux.vnet.ibm.com>2016-02-29 13:27:36 -0600
committerPaul E. Murphy <murphyp@linux.vnet.ibm.com>2016-03-31 12:14:33 -0500
commit37a4c70bd4c5c74ac562072e450dc02e8cb4c150 (patch)
treec9a631e747dcb7ca4213c93460d7e45d153a0771 /ChangeLog
parent830566307f038387ca0af3fd327706a8d1a2f595 (diff)
downloadglibc-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--ChangeLog14
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]