[gfortran] PR15206 RRSPACING wrong for zero

Tobias Schlüter tobias.schlueter@physik.uni-muenchen.de
Fri May 14 14:13:00 GMT 2004


Paul Brook wrote:
> On Saturday 08 May 2004 17:28, Tobias Schlüter wrote:
> 
>>This patch fixes the RRSPACING intrinsic. It didn't return the correct
>>result for a zero argument. I don't really understand how the original
>>code worked, but I verified that RRSPACING(x) == x/SPACING(x) for a wide
>>range of arguments. I used the condition (expn == 0 && frac == 0) to
>>check for a zero argument, if this is not the correct check, please
>>correct this.
> 
> 
> I think frac==0 is a sufficient test. The result of clz(0) is undefined, so we 
> want to avoid that anyway
>

I was afraid that frac == 0 for 1.0 as well, because the leading 1 is 
not recorded in FPNs. Of course, exp would be zero in that case as well. 
I'll try only checking frac == 0, and report back.

BTW the optimizers don't believe that
  x / (SPACING(x) * RRSPACING(x)) == 1 :-)

- Tobi

ps I'm still in town, I postponed my vacation. I'm not in some internet 
cafe manically applying patch after patch :-)



More information about the Fortran mailing list