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

Re: Motion P1788.1/M004.01



On Sat, May 14, 2016 at 12:25 PM, Michel Hack <mhack@xxxxxxx> wrote:
> On Sat, 14 May 2016 12:18:20 -0400, Lee Winter wrote, replying to John Pryce:
>> > The 1788 standard *is* based on the mathematical real numbers, ...
>>
>> That will always be a point of ongoing debate.  For example, can you
>> present a finite sequence of numerical operations that produces a true
>> mathematical infinity?
>
> Obviously not, since there are no infinite Real numbers.  What's the point?

The point is to refute the claim the '1788 represents unbounded sets.
C.f. A. Lincoln, who ofter asked how many legs a dog has if you call a
tail a leg.  To the response "five", he would say "no, four" because
calling a tail a leg does not make it a leg.

So with '754 calling overflow infinity does not create a value that
represents a mathematical infinity.

>
>> For example, '1788 states that "zero" times "infinity" is "zero".
>
> No it doesn't.  It says that this deviation from the 754 standard
> would be useful for implementing interval arithmetic by computing
> with the floating-numbers used for representing the bounds.  The
> reason is that 1788 is indeed based on Reals, and not on Extended
> Reals (in the affine sense), which is the model underlying 754.
>
>> But '754 does not have "zeros" or "infinities".  It has underflows
>> and overflows.
>
> No -- 754 does have true (exact) zeros and infinities -- as well as
> (inexact) zeroes and infinities resulting from underflow or overflow.

OK, that is an interesting claim.  What bit pattern is used in '754 to
represent true (exact) zero?

Does that mean there are signed exact zeros?

What bit pattern is used in '754 to represent exact infinities?  Is
there more than one positive infinity?  Since infinity is not a real,
much less a representation thereof, shouldn't  infinity be a kind of
NaN?  In what sense is a '754 "exact infinity" exact?

> Unfortunately 754 has no easy way to track the distinction

So, in reality: '754 only has values that follow certain propagation
rules.  Those rules perfectly model underflow and overflow.  They do
not model exact zeros and infinities of any kind.

See also the "three zeros" proposal (positive, unsigned [mathematical
zero], and negative), which was rejected by the '754 committee (a
horrible mistake IMHO).  The cause of the rejection was the bad
terminology used to describe it.  In my communications with Prof.
Kahan, he was only willing to state that it was rejected, but would
not discuss it further.

> It can
> do so for a single operation by careful use of the IEEE flags, but
> has no way (unlike Unum, for example) to track the distinction in the
> value.

I interpret that to mean that '754t has only one interpretation of
each bit pattern, and the correctness of that interpretation is fully
determined by the operational rules that control the computation and
propagation of the bit pattern.

>  The 1788 decorations are one way to address these issues, but
> they are not available in 754, which compounds the issue by heavily
> overloading the meaning of NaN (as well as zero and infinities).

Can you describe those overloads for '754 "zero" or '754 "infinity"?

>
>> A narrow FP representation might produce an overflow, while a wider
>> representation would not.  If you misinterpret the overflows as a kind of
>> infinity, then the narrow representation produces an "infinite" result, ...
>
> No it does not.  It produces a result stating that the upper bound is
> not known, and this uncertainty is properly propagated.

So we have overflows, inexact infinities, and exact infinities in '754?

I disagree.

Lee Winter
Nashua, New Hampshire
United States of America