This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] Increase internal precision of ldbl-128ibm decimal printf
- From: Andreas Schwab <schwab at linux-m68k dot org>
- To: "Paul E. Murphy" <murphyp at linux dot vnet dot ibm dot com>
- Cc: "libc-alpha\ at sourceware dot org" <libc-alpha at sourceware dot org>, Tulio Magno Quites Machado Filho <tuliom at linux dot vnet dot ibm dot com>
- Date: Thu, 17 Mar 2016 22:56:37 +0100
- Subject: Re: [PATCH] Increase internal precision of ldbl-128ibm decimal printf
- Authentication-results: sourceware.org; auth=none
- References: <56EB246E dot 4050504 at linux dot vnet dot ibm dot com>
"Paul E. Murphy" <murphyp@linux.vnet.ibm.com> writes:
> + /* Hold 7 extra bits of precision in the mantissa. This allows
> + the normalizing shifts below to prevent losing precision when
> + the signs differ and the exponents are sufficiently far apart. */
> + lo <<= 7;
That magical number should probably get a name.
> /* we have a borrow from the hidden bit, so shift left 1. */
> - hi = 0x0ffffffffffffeLL | (lo >> 51);
> - lo = 0x1fffffffffffffLL & (lo << 1);
> + hi = 0x000ffffffffffffeLL | (lo >> (52 + 7));
> + lo = 0x0fffffffffffffffLL & (lo << 1);
Not 51 + 7?
Andreas.
--
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."