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

Re: Wrapping up SRFI-70

This page is part of the web mail archives of SRFI 70 from before July 7th, 2015. The new archives for SRFI 70 contain all messages, not just those from before July 7th, 2015.



 | 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