Raymond Toy writes:
"Daniel" == Daniel Kochma <Daniel> writes:
Daniel> Also, we'll have to define such infinity for each architecture Daniel> separately, depending on the endianess? >> >> Yes, probably. But you only need to set up MSB/LSB to get the right >> thing. I think. At least that's how fdlibm works and how cmucl >> produces it's infinities (in C code). Of course in Lisp, cmucl has >> special builtins to create floats from bits appropriately. Perhaps >> ecl can do something similar. (But there are separate implementations >> for each architecture.) Daniel> I'd rather avoid that. ECL runs now on number of architectures I have no Daniel> access too.
I suspect every arch you care about has 32 (or 64) bit words, and all floats are IEEE.
So, perhaps it would be easier to create them as you mentioned earlier via 1/0 and 0/0 or related expressions.
This requires that you be able to turn off exceptions in C, but ecl can probably already do that.
I'll fallback to it, if C99 extension isn't present, that is:
#ifndef INFINITY #define INFINITY (1.0 / 0.0) #endif
#ifndef NAN #define NAN (0.0 / 0.0) #endif
Thanks for help.
Best regards, Daniel