[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
SRFI-77 with more than one flonum representation
I think that the flonum-specific parts of SRFI-77 has some issues when
there is more than one flonum representation[*]. For example, consider
an implementation with IEEE 754 single-precision and double-precision
(a) Does (fixnum->flonum 0) return a single-precision or a
(b) If x and y are single-precision flonums whose sum cannot be
represented as a finite single-precision flonum, does (fl+ x y) return a
single-precision infinity or a double-precision finite value?
(c) How do I convert between single-precision and double-precision flonums?
I suspect there may be other issues.
[*] Why support anything other than double? Well, long double can be
useful in certain algorithms. Furthermore, external data is often
represented as shorts: if such data is represented internally as
doubles, the additional precision and range can cause problems. Finally,
on a 64-bit machine you can probably unbox shorts, which may make
arithmetic with shorts significantly faster than arithmetic with
doubles. I'm sure other people can come up with other justifications.