[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Nitpick with FLOOR etc.
> From: Aubrey Jaffer <agj@xxxxxxxxxxxx>
> | > From: Aubrey Jaffer <agj@xxxxxxxxxxxx>
> | > Inverting +/0. or -/0. returns 0.0. So the name "error object"
> | > wouldn't seem to apply either.
> | - I still don't understand how it's acceptable for (/ 1/-0.0) => 0.0, as
> | it seems neither necessary, nor desirable to propagate IEEE-754 mistake.
> (limit / -/0. -1.0e222) ==> 0.0
- which is only the case as you don't differentiate between -0.0 and +0.0;
therefore all reciprocal infinities collapse to 0.0, and hence loose their
respective originating reciprocal signs. (which I won't debate any longer
although I feel it's a mistake).
> The limit, as x approaches -/0. from -1e222, of (/ x) is 0.0.
> | > | This brings up an important distinction in "infinities;"
> | > | When you divide by exact zero you get an absolute infinity.
> | > | (which, perversely, is neither positive nor negative, because
> | > | exact zero isn't positive or negative.) Call this EO1.
> | >
> | > We have already covered this ground. Division by zero is undefined;
> | > SRFI-70 extends division by returning infinities in these cases:
> | > (/ -5. 0) ==> -/0.; (/ 1. 0) ==> +/0., which are consistent with
> | > the one-sided limits:
> | >
> | > (limit / 0 1.0e-9) ==> +/0.
> | > (limit / 0 -1.0e-9) ==> -/0.
> | - however as multiplication by 0 should result in 0, 0/x => 0
> | regardless of its denominator.
> There is no multiplication by 0 here; (limit / 0 1.0e-9) is the limit,
> as x approaches 0 from 1e-9, of (/ x).
- sorry, clipped what I meant to refer to:
| 0/0. is an error object (SRFI-70 calls it an error waiting to happen),
| but +/0. and -/0. behave differently from error objects when inverted:
| (/ +/0.) ==> 0.0; and in numerical comparisons.