[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: SRFI-77 with more than one flonum representation
John Cowan wrote:
I read SRFI 77 as saying that a conforming Scheme system can have
more than one representation of inexact reals, but that one of these
must be labeled "flonums" for the purposes of the standard, and
the others are something else.
Yes, that is a possible solution, but does anyone think it is a
satisfactory one? I don't like giving one representation priviledged
status and I especially do not like having a number that is represented
as a flonum (in the general sense of the word) but which is not a flonum
(in this restricted sense of the word).
One solution that would avoid giving priviledged status to one of the
flonum representations would be to mandate modules for short[*], single,
double, and extended flonums. (There might also be a default module,
corresponding to the default precision of the reader.) Each module would
implement the SRFI-77 flonum procedures for the given flonum
representation. If an implementation has only has one flonum
representation, the modules would be identical.
There are some problems with this. For example, the double-precision
flonum? would presumably return false when its argument is a
single-precision flonum. But one can perhaps sweep this under the carpet
by arguing that the originating module makes it clear that flonum?
really should be read as double-precision-flonum?
> The procedure "real->flonum" coerces
> an arbitrary real to the chosen case so that the flonum-specific
> procedures can be invoked.
One of the arguments for the flonum-specific procedures is efficiency.
real->flonum is generic, and undersome circumstances will not be as
efficient as as hypothetical
[*] Actually, I think we could get rid of short flonums. However, the
cost of leaving them in is small, so perhaps it's not worth the bother.
Dr Alan Watson
Centro de Radioastronomía y Astrofísica
Universidad Astronómico Nacional de México