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

Re: Nitpick with FLOOR etc.



> From: Aubrey Jaffer <agj@xxxxxxxxxxxx>
>  | Date: Tue, 02 Aug 2005 21:48:52 -0400
>  | From: Paul Schlie <schlie@xxxxxxxxxxx>
>  | 
>  | > From: Aubrey Jaffer <agj@xxxxxxxxxxxx>
>  | >  | From: Paul Schlie <schlie@xxxxxxxxxxx>
>  | >  |
>  | >  | - 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;
> 
> The `limit' procedure does not call `/' at the limit point.
> Its last call to `+' generating the return value is
> 
>   (+ 999.9999999999999e-225 -999.9999999999999e-225) ==> 0.0

- Therefore it would appear the implementation of limit is flawed,
  as if it is agreed that: #i-1/0 :: -1.0/0 :: 1/-0.0 :: -Inf.0
  then it follows that it's reciprocal must then be correspondingly
  both infinitesimally small and negative (not positive). Apparently
  resulting from it's implementation not treating +-0.0 as special
  case reciprocal infinite, as in general the magnitude of the
  deviation about a value should never be greater than the magnitude
  of the value itself, as otherwise the limit calculation will be
  erroneous, where the only arguable exception would be about an
  absolute 0, where by definition any deviation about itself will
  result in varying signed magnitudes (where absolute 0 has neither
  a sign nor magnitude).