[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Nitpick with FLOOR etc.
| Date: Sat, 16 Jul 2005 05:12:13 -0400
| From: Paul Schlie <schlie@xxxxxxxxxxx>
| > From: Aubrey Jaffer <agj@xxxxxxxxxxxx>
| > procedure #i-/0 #i+/0
| > ========= ===== =====
| > floor error 179.76931348623157e306
| > ceiling -179.76931348623157e306 error
| > truncate -179.76931348623157e306 179.76931348623157e306
| > round -179.76931348623157e306 179.76931348623157e306
| - it's not clear this is necessarily desirable?
| As upon further thought it seems most reasonable that infinities
| return infinities, or optionally throw an exception, for all such
| scenarios to be most consistent?
If infinities are the only non-integers allowed to be returned from
these functions, should infinities be the only inexacts allowed to be
returned from `INEXACT->EXACT'?
| (As otherwise the marginal error resulting from the conversion may
| be infinite itself which seems inconsistent with the expectations
| of the conversion.)
I grepped through SLIB and several Scheme applications' source for
occurrences of ROUND, CEILING, FLOOR, and TRUNCATE. In essentially
all 30+ cases INEXACT->EXACT was called with the results of these
functions. So having ROUND, CEILING, FLOOR, and TRUNCATE return
infinities will only slightly delay the exception.