[fortran,patch] Patch for PR 14394 - Precision of real type.

Paul Brook paul@codesourcery.com
Wed Mar 24 11:36:00 GMT 2004


On Wednesday 10 March 2004 04:34, Feng Wang wrote:
> Hi, all
>   This patch fix PR 14394. Reported by Bud. Test case:
> cat z.f
>         REAL AVS,BVS
>         BVS = 1.5747025767
>         AVS = TAN(BVS)
>         PRINT*,AVS
>         END
>   There is one problem converting the real type from mpf to gcc tree. With
> -fdump-parse-tree we can see fortran gets the input and parse correctly.
> gfc_conv_mpf_to_tree in trans-const.c use string as the intermediate of the
> conversion. As convert mpf to string, we specify the maximum digits number
> of the real value. In my patch, I loosen the limit.
>   I tested real and real*8 type with the patch. The real type got the same
> result with Intel's compiler. But with real*8 type, gfortran gave the
> result: -255.998704134517, compared with Intel's -255.995833263172. The
> difference of them is above 0.002. With calculator I comfirmed the
> gfortran's result should be correct. But can anyone give more comparation
> with other compilers. What's your opinion?

Ok, although it needs a changelog entry.

I suspect some compilers/libraries use faster, less accurate math routines by 
default. This may explain the differences you are seeing.

Paul



More information about the Gcc-patches mailing list