https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109008

--- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> ---
(In reply to Jakub Jelinek from comment #6)
> Note, the ulps frange_arithmetic are ulps of the result, result is in this
> case 0.0,
> so 1ulp is the smallest subnormal number.
> That is something completely different from what we need here though for the
> reverse
> operations.
> [1.0, 1.0] + x == [1.0, 1.0] is true with round to nearest for x in
> [-0x1.0p-54, 0x1.0p-53], so that is ulp of 1.0, not the result.
> Now, is this problem just around the 0 result or other values too?
> Say [1.0, 1.0] + x == [2.0, 2.0]?

Consider

 [1.0, 1.0] + x == [1.00001, 1.00001]

I think that we need to adjust x here as well, it's not
just [0.00001, 0.00001] with an ulp of that result but it's a wider
range adjusted by the "biggest" ulp of the input ranges?

Reply via email to