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

Re: comparison operators and *typos



> If we make (/ +1 0.0) ==> #i+1/0, then (/ -1 0.0) ==> #i-1/0.
> This choice is arbitrary; ...

- which seems very reasonable.

>  | > Inexact infinities have reciprocals: zero.  Their reciprocals
>  | > are not unique, but that is already the case with IEEE-754
>  | > floating-point representations:
> ...
> Zero is at the center of 0.0's neighborhood.  R5RS division by 0.0
> is an error; leaving latitude for SRFI-70's response.

- also seems very reasonable, and provide the opportunity to reconsider
  eliminating IEEE-754's otherwise inconsistent asymmetry, by defining:

  (/ #i-0/1) => #i-1/0 ; -inf.0
  (/ #i+0/1) => #i+1/0 ; +inf.0

  thereby truly consistently symmetric with the above:

  (/ #i-1/0) => #i-0/1 ; -0.0
  (/ #i+1/0) => #i+0/1 ; +0.0

> Most neighborhoods mapping through functions project onto adjacent
> neighborhoods.  But / near 0 is not the only function which does not.
> TAN near pi/2 is another example.

- and please reconsider this may be consistently symmetrically defined:
  [where ~ denotes a value being simultaneously positive and negative]

  (/ #i~0) => #i~1/0 ; ~inf.0
  (/ #i~1/0) => #i~0 ;   ~0.0

  (tan pi/2) => #i~1/0 ; ~inf.0

  (abs ~inf.0) => +inf.0
  (- (abs ~inf.0) => -inf.0
  (abs ~0.0) => +0.0
  (- (abs ~0.0)) -0.0

  (+ +0.0 -0.0) => ~0.0

  Where I believe it's reasonable to redefine the use of IEEE's NAN
  values to encode these values, as arguably ~inf.0 may be thought
  of as being NAN, and ~0.0 as being 1/NAN (leaving 0.0 == +0.0)