Order of evaluation, machine floating point
Henry Spencer
henry at utzoo.UUCP
Tue Mar 17 08:20:49 AEST 1987
> ... for unknown reasons all floating arithmetic is supposed to occur in
> double precision. I realize that K&R said it, but I don't know why...
Dennis Ritchie answered this on the net a long time ago:
> From decvax!harpo!npoiv!alice!research!dmr Wed Sep 8 23:22:25 1982
> Subject: float/double in C
> Newsgroups: net.unix-wizards
>
> Several people have correctly quoted the manual as calling for evaluation
> of expressions on (single-precision) floats in double precision. The
> rule was made for 3 reasons.
>
> 1) To make certain that floating-point function arguments and return values
> were always double (thus avoiding multiple library routines and constant
> need for casts.)
>
> 2) Because the PDP-11 makes it horribly difficult to mix modes otherwise
> (yes, I admit it).
>
> 3) Because it is numerically more desirable to evaluate single-precision
> expressions in double precision, then truncate the result.
>
> These are in order of importance...
Religious use of X3J11 function prototypes will pretty much solve Dennis's
#1 problem, #2 is increasingly a dead issue, and #3 is usually true for the
naive but makes the pros very unhappy.
--
"We must choose: the stars or Henry Spencer @ U of Toronto Zoology
the dust. Which shall it be?" {allegra,ihnp4,decvax,pyramid}!utzoo!henry
More information about the Comp.lang.c
mailing list