This is the mail archive of the fortran@gcc.gnu.org mailing list for the GNU Fortran project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [gfortran] PR15206 RRSPACING wrong for zero


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 :-)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]