Re: Motion 45
On 2013-08-01 05:42:17 +0200, Ulrich Kulisch wrote:
> The product of two real numbers is a particular form of a dot product. Now
> consider the interval product with a>0 and b<0:
> [0, a] × [b, 0] = [a×b, +0] or [0, 0] × [c, d] = [+0, +0]
> By motion 45 the zeros in the results have to carry a plus sign. This looks
> very strange to me in particular since a×b<0. A signed zero does not make
> sense in interval arithmetic. An interval with zero as one bound has already
> a direction.
Motion 45 is not about operations on intervals, so I don't understand
why you mention the interval product.
Motion 45 is about floating-point operations (not intervals!), where
the sign of 0 matters.
Note that I don't think that the rule
If the exact result is defined as an extended-real number, return
this after rounding to the relevant format according to the current
rounding mode. An exact zero shall be returned as +0 in all rounding
modes.
is a good choice. But this rule hasn't changed: it was already in the
standard text (Draft 7.3, 2013-06-25). Perhaps there should be a new
motion to change it...
> A real interval is defined as a closed and connected set of real numbers. In
> case of unbounded intervals -oo and +oo are just used as bounds. They are
> themselves not real numbers! So in case of interval division the rules for
> computing the bounds of the result do not strictly follow the pattern of
> IEEE 754 arithmetic for extended real numbers. For instance 0×(-oo) =
> (-oo)×0 = 0×(+oo) = (+oo)×0 = 0 in interval arithmetic and not NaN like in
> IEEE 754 arithmetic.
But Motion 45 is about the reduction operations of IEEE 754
arithmetic. Look at the beginning of the text of the motion:
Reduction operations.
^^^^^^^^^^^^^^^^^^^^
An implementation that provides 754-conforming interval types shall
provide the four reduction operations sum, dot, sumSquare and sumAbs
^^^^^^^^^^^^^^^^^^^^^^^^^
of IEEE 754-2008 §9.4, correctly rounded. These shall be provided
^^^^^^^^^^^^^^^^^^
for the parent formats of each such type.
I agree that an IA implementation may require rules like ×(-oo) =
(-oo)×0 = 0×(+oo) = (+oo)×0 = 0, but such rules would be used
internally in the implementation, i.e. in the algorithms. And this
would be out of the scope of the standard: the standard specifies
behavior, not how operations are implemented.
--
Vincent Lefèvre <vincent@xxxxxxxxxx> - Web: <http://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)