This is the mail archive of the guile@cygnus.com mailing list for the guile project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Uniform "floats"



When SCM_SINGLES is defined, Guile may represent some inexact numbers
as a pair whose CAR contains magic typing information, and whose CDR
contains the floating point value.  The checks in the configure script
are trying to make sure the floating point value can fit inside the
CDR.

However, there's no requirement that the sizes be exactly equal; only
that a float fit inside a long.  I think the authors didn't expect to
encounter a machine where sizeof (float) < sizeof (long); is that true
on the alpha?  Anyway, the tests can be changed to define SCM_SINGLES
when sizeof (float) <= sizeof (long).

Hmm.  So, on the alpha, is sizeof (double) == sizeof (long)?  If so,
then we should be able to define something analogous to SCM_SINGLES
called SCM_DOUBLES, where doubles are stored directly in the cdr...