For example, if n is positive and x(n) is calculated to be 1/(2^n), y(n) ← 1 - x(n), and finally z(n) ← 1 - y(n) in a CALC sheet, then the IEEE 754 DP format should be able to yield the mathematically correct result z(n) = x(n) for n <= 53. Yet, in several recent versions of CALC up to 4.1.4.2 running on MS-Win and Linux, this holds true only for n <= 48, whereas for 49 <= n <= 53, y(n) is artificially set to one so that z(n) equals zero.

My first question is why this “bit killing” feature has been implemented at all, and my second question is whether there is a means to force subtractions leading to heavy cancellation to be calculated to full DP precision?

At least in XL, which implements bits killing for 50 <= n <= 53, putting parentheses around a difference serves this purpose, but this trick does not work in CALC.

Any ideas please?