[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Wrapping up SRFI-70
| Date: Mon, 15 Aug 2005 09:38:34 -0700
| From: Per Bothner <per@xxxxxxxxxxx>
|
| Aubrey Jaffer wrote:
| > I believe that the junking of 0/0 makes SRFI-70 compatible with
| > IEEE-754. Do you agree?
|
| It's a bit awkward. The syntax 0/0 suggests 0/0 is exact.
| The 0/0 syntax is extra awkward for an implementation that
| defines 1/0 and -1/0 as exact infinities, as Kawa does.
SRFI-70 specifies no Scheme notation for 0/0. It is used in the
Specification to stand for a numeric error-object (or violation of
implementation restriction).
| (Exact infinites are an experimental addition in Kawa I won't claim
| they're terribly well-specified or justified. I think they can be
| useful in some situation, such as sentinel values.)
|
| I did find some discrepencies between your specification and Kawa:
|
| #|kawa:21|# (define neg-inf (/ -1.0 0.0))
| #|kawa:22|# neg-inf
| #i-1/0
| #|kawa:23|# (log neg-inf)
| #i1/0+3.141592653589793i
| #|kawa:26|# (sqrt neg-inf)
| #i+1/0i
|
| Kawa allows complex numbers with infinite components.
| Whether this is "correct" or accidental I don't know.
Non-real numbers with infinite components would all be SRFI-70
error-objects. But SRFI-70 needs to be clearer about this.
| Also I got:
|
| #|kawa:30|# (angle neg-inf)
| 0
The result should be pi, the same as (angle -1).
| #|kawa:29|# (angle inf)
| 0
If inf is inexact, then (angle inf) should be 0.0