|
| From: | Abdulaziz Ghuloum |
| Subject: | [Chicken-users] Re: [q-lang-users] Re: IEEE float arithmetic |
| Date: | Wed, 21 Jun 2006 02:36:35 -0400 |
| User-agent: | Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.7.12) Gecko/20050915 |
John Cowan wrote:
Albert Graef scripsit:But you want the code at least not to do any harm on systems with _no_ IEEE floats. I'm not sure, but couldn't dividing by 0.0 on such systems kill your program with SIGFPE?I don't know. I've never done serious floating-point work that had to run on a non-IEEE system (everything I did on a PDP-8, PDP-11, or pre-IEEE VAX was pretty much either integer-only or floats-as-integers, as in most Basics).
Are there any processors nowadays that only support non-IEEE flonums?
Another point is that division is a much more costly operation than adding and subtracting.True.
But you don't need division to perform that test. You can do the
following to be sure:
static double pos_inf = +1.0/0.0;
static double neg_inf = -1.0/0.0;
int isinf(double f){
return f==pos_inf || f==neg_inf;
}
Now I have to say that gcc is brain damaged sometimes since it
constant-folds the 1.0/0.0 and -1.0/0.0 on PPC but performs the
actual division at runtime on Intel! The above code should be
cheap on either although I'm not really impressed by the output
of gcc.
Aziz,,,
| [Prev in Thread] | Current Thread | [Next in Thread] |