At 04:51 PM 6/19/98 +0200, [log in to unmask] wrote:
[snip]
>
>Unfortunately, it appears that a standard conforming processor may still
>evaluate DBLE(2.0)*DBLE(3.0) as 6.0D0 in 1 CPU cycle and DPROD (2.0, 3.0)
>as 4.0D0 in many many cycles.
>
>This confirms the opinion that I have that the standard should impose
>some documentation requirements, every time it says ``processor dependent''.
>
>
>Michel
>
The problem with DPROD is more than mere "processor dependent" accuracy.
It really is that the standard does not define the intent of the function.
Back in the good old days some processors could multiply two reals in
a double width register and it was possible to capture all of the bits
and put them in a double precision variable. Unfortunatly the standard
doesn't say that this is what is required. It is perfectly standard
conforming to multiply the two reals, produce a real result, and pad it
to double by adding lots of zero bits. In my mind, this is different from
saying that there is some processor dependent precision and round off
error. Just as the difference between .1E0 and .1D0 is fundamental
and not round-off.
Dick
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|