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

Re: infinity notations

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.



> And I'll concede my perceived necessity to denote an ambiguously signed
> infinity in exchange for the prevention of incorrectly signed infinities,
> which means that the region about 0 must be considered correspondingly
> invalid, (i.e. both are considered NaN or 0/0). yielding:
> 
> 
>           /  NaN  \         or equivalently:          /  0/0  \
>          /    |    \                                 /    |    \
>         -Inf  |  +Inf                               -1/0  |  +1/0
>         ------+------- (reciprocal projection axis) ------+------
>         -0.0  |   0.0                               -0.0  |  +0.0
>          \    |    /                                 \    |    /
>           \  NaN  /                                   \  0/0  /
>               |                                           |
>               0                                           0
>   (negative projection axis)                  (negative projection axis)
> 
> (where NaN and +-Inf may be thought of as symbols defined as 0/0 and +-1/0)
> 
> Which helps eliminates the ordering concern, although it's likely still a
> good idea to define (= -0.0 0 +0.0) => #t, and (< -0.0 0 +0.0) => #t, etc.
> 
> However then 0/0 denotes all ambiguities in either sign or value, even those
> which may be very small, then Therefore:
> 
> (+ +0.0 -0.0) => 0/0 [aka NaN]
> 
> as otherwise:
> 
>  (/ (+ +0.0 -0.0 +0.0)) :: (/ (+ 0 +0.0)) :: (/ +0.0) => +Inf
> 
> [which would be incorrect]
> 
> Thereby one can argue that this is actually good, as then the iterative sum
> of alternating infinitely small value about 0 is considered ambiguous, which
> would typically be the case. and correspondingly yield 0/0 for all
> ambiguities in either sign or significant magnitude.
> 
> (tan pi/2) => 0/0
> (/ 0.0 0.0) => 0/0

and as it may not be obvious, the difference between any two equivalently
valued inexact value is an exact 0. I.e.:

(- 1.5 1.5) => 0

as there is no inexact 0, as that would imply a value about 0 with an
ambiguous sign, which would both have a value range which overlaps +0.0,
0, and +0.0; and who's reciprocal was not self consistent. (or if one
chooses, an exact 0 is equivalent to an inexact 0, both mean absolute 0.)