Thread Links Date Links
Thread Prev Thread Next Thread Index Date Prev Date Next Date Index

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)