Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.1 6/24/83; site alice.UUCP Path: utzoo!watmath!clyde!burl!ulysses!allegra!alice!ark From: ark@alice.UucP (Andrew Koenig) Newsgroups: net.lang.c Subject: Re: C Floating point arithmetic Message-ID: <4666@alice.UUCP> Date: Fri, 6-Dec-85 01:13:12 EST Article-I.D.: alice.4666 Posted: Fri Dec 6 01:13:12 1985 Date-Received: Sat, 7-Dec-85 03:04:58 EST References: <618@ttrdc.UUCP> Organization: Bell Labs, Murray Hill Lines: 19 >> float a,b; >> >> a = b + 1.0; /* Gets done in double because 1.0 is a double. >> Gag me with a spoon. */ > >Nah, gets done in single because the compiler realizes that 1.0 has >the same representation in single and double, and therefore that >the result of the addition will be the same. ... to which Dan Levy gives detailed evidence that his machine does it in double. Apparently some people don't recognize irony; let me try to make the same point more clearly. The point is that most floating-point constants are very simple: 1.0, 0.0, sometimes 2.0. It doesn't take much to recognize such constants and do the operations in single. This is true even if your compiler isn't up to it.