[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Wrapping up SRFI-70

This page is part of the web mail archives of SRFI 70 from before July 7th, 2015. The new archives for SRFI 70 contain all messages, not just those from before July 7th, 2015.



> From: bear <bear@xxxxxxxxx>
> On Wed, 17 Aug 2005, Paul Schlie wrote:
>> ...
>>  therefore in representations where they
>>  are not distinguishable, it would seem that it may then be correspondingly
>>  appropriate to presume values represented as infinites are over/under-
>>  flowed values, thereby implying that any value other than an exact
>>  infinity multiplied by an exact 0 is 0, and correspondingly implying
>>  that only 0/0 and/or any value who's absolute value is greater than 1
>>  divided by, or who's absolute value is less than 1 multiplied by, an
>>  infinity are considered NaN's [aka 0/0] (as otherwise the resulting value
>>  will be known to be within the value ranges designated for infinites
>>  and/or their reciprocals, and represented as such)?
> 
> Okay, I had to reread that three times, but if I understand
> you correctly, I think I agree. I've been awake too long
> maybe and I'm having trouble thinking around corners.

In attempt to more clearly depict the above:

          (additive inverse axis)
                     |
   * -sInf | * -s0.0 | * +s0.0 | * +sInf
   => sInf | => s0.0 | => s0.0 | => sInf
   --------|---------|---------|-------- (multiplicative Infinities)
   -Inf   -1  -0.0   0  +0.0  +1    +Inf
   ==|=====|====|====|====|====|=====|== (multiplicative inverse axis)
   -0.0   -1  -Inf  Inf +Inf  +1    +0.0
   --------|---------|---------|-------- (multiplicative NaN's)
   * sInf  | * s0.0  | * s0.0  | * sInf
   => NaN  | => NaN  | => NaN  | => NaN

i.e:

 for x!=Inf:  (* x 0) => 0, (/ x Inf) => 0 ; true zero
 for x!=0:    (* x Inf) => Inf, (/ x 0) => Inf ; true infinity

 for x<=-1:   (* x -Inf) => +Inf, (/ x -0.0) => +Inf ; +infinity/overflow
              (* x +Inf) => -Inf, (/ x +0.0) => -Inf ; -infinity/overflow

 for -1<=x<0: (* x -0.0) => +0.0, (/ x -Inf) => +0.0 ; +zero/underflow
              (* x +0.0) => -0.0, (/ x +Inf) => -0.0 ; -zero/underflow

 for 0<x<=+1: (* x +0.0) => +0.0, (/ x +Inf) => +0.0 ; +zero/underflow
              (* x -0.0) => -0.0, (/ x -Inf) => -0.0 ; -zero/underflow

 for +1<=x:   (* x +Inf) => +Inf, (/ x +0.0) => +Inf ; +infinity/overflow
              (* x -Inf) => -Inf, (/ x -0.0) => -Inf ; -infinity/overflow

 otherwise for any other value of x above, => NaN