On 2012-02-29 11:43:45 -0500, Michel Hack wrote:
Vincent Lef?vre wrote, in reply to Dan Zuras:
Coercion: mid_F(X) = if (abs_F(round2Nearest_F(mid(X))) = +inf)
then roundToZero_F(mid(X))
else round2Nearest_F(mid(X))
For X = [0,+inf], this would give:
* mid(X) = +inf
* abs_F(round2Nearest_F(mid(X))) = +inf
* roundToZero_F(mid(X)) = roundToZero_F(+inf) = +inf
while I think you wanted Fmax_F. I don't think you can avoid it,
except artificially, e.g. with nextDown(+inf).
The "roundToZero" applies to the entire operation, in the spirit of 754,
where there is only one rounding after a conceptually-exact computation.
So there is nothing artificial about ending up with Fmax_F.
No, roundToZero does not apply to entire operations (this makes no
sense), but to unrounded results. Here the unrounded result mid(X)
is +inf, because at Level 1:
(inf(X) + sup(X)) / 2 = (0 + (+inf)) / 2 = (+inf) / 2 = +inf
Then the rounded result is roundToZero_F(+inf) = +inf.