[cfp-interest 4003] Rounding error in fma(r, s, t) - Not for inclusion in our Meetings
Damian McGuckin
damianm at esi.com.au
Tue Sep 8 16:50:03 PDT 2026
Thought I would tap into collective intelligence.
Give a computation with p = precision (24 for float, 53 for double)
u = fma(r, s, t)
where
0.5 <= r <= 1 or strictly [0.5, 0.617..., 0.731..., 1]
and
2**(1-p) < s < 1 (I can limit the upper bound to 0.25)
and
2**(-p-2) < |t| < 2**(-p-1)
why does
fma(r, s, u) - t
seem to yield the rounding error even when |t| > |r * s|
If you look at the requirements under which Kahan's Fast Two Sum works,
that formula will work for
|t| <= |r * s|
But it seems to work for my data when that inequality does not hold and I
am looking for a way to prove it (I have tested even 32-bit floating point
value in the range is 's' and it seems to but that doesn't prove it for
all possible double values).
Not urgent - Thanks - Damian
More information about the cfp-interest
mailing list