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

Re: Nitpick with FLOOR etc.



 | Date: Thu, 21 Jul 2005 20:50:05 -0400
 | From: Paul Schlie <schlie@xxxxxxxxxxx>
 | 
 | After attempting to digest everything discusses, although realizing
 | your desire to not require any corresponding impact to either rsrx
 | or exact semantics; I don't believe it's reasonably possible, as it
 | seems that the only way to achieve what you desire, and maintain
 | reasonable consistency with mixed exact/inexact arithmetic would be
 | to:
 | 
 | - as suggested by "bear", define the requirement that exact and
 | inexact value representations be constrained to the same value
 | range.
 
I am reluctant to take that measure unless someone can provide an
example from practice where the ranges being unequal caused bad
software behavior.

 | - define infinites and their reciprocals to abstractly commonly
 | represent the greatest/smallest values at bounds of the
 | representable numerical range,

As I written previously, using the boundary for the nominal value is
the worst choice from that neighborhood.  Doing so means that nearly
every calculation which projects into #i+/0 is larger than the nominal
value.

 | exclusive of 0 representing an absolute 0, who's reciprocal is
 | itself 0.

This would mean (* 0 (/ 0)) would no longer signal an error or return
0/0.  What would (/ 0 0) do?  What would (/ 0.0) return (exact or
inexact)?  (/ 0 0.0)?

 | - thereby the range of all numerical transforms map to a
 | correspondingly representable domain (although may optionally
 | signal a run-time exception as may be desired in certain
 | circumstances).

This would have been nice, but the smallest (unnormalized) numbers in
IEEE-754 are not symmetrical with the largest magnitude numbers:

(/ 179.76931348623157e306) ==> 5.562684646268003e-309
(/ 5.562684646268003e-309) ==> #i+/0

There are unnormalized numbers down to 4.0e-324, all of whose
reciprocals are #i+/0.
 
 | Which overall seems to eliminate all the contentious issues, as
 | long as one is willing to accept the consequences saturating
 | arithmetic, in lieu of an typically arguably less useful more
 | abstract treatment of infinites.
 | 
 | Effectively resulting in:
 | 
 |        .. -1.0 ..      |      .. +1.0 ..
 |   -1/0 .. -1/1 .. -0/1 | +0/1 .. +1/1 .. +1/0
 |   -------------------- 0 --------------------- (multiplicative inverse axis)
 |   -0/1 .. -1/1 .. -1/0 | +1/0 .. +1/1 .. +0/1
 |        .. -1.0 ..      |      .. +1.0 ..
 |                        |
 |             (additive inverse axis)

How is this different from your "more abstract treatment of
infinities"?