# 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:

|
* -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

```