_FP_SETCW()

David Berthelot davidb@Magma-DA.COM
Tue May 8 11:02:00 GMT 2001


Question about your problem:

Are you sure that the numbers are different, did you compare the binary
representations ?
May be it's the printf that has a different behavior depending if it's
VC++ one or glibc one ?

--
David

Philippe Després wrote:

> Hello,
>
> anyone know how to set the control word from fpu_control.h to obtain a
> floating point behavior like the one on Windows (VC++), i.e. that for a
> double,
>
> double x=cos(0.2);
>
> printf("%20.20f",x); on windows gives
>  x=0.98006657784124163000 (zeros after the 17th digit)
>
> on linux, those zeros are filled with something else and my results
> depends on this...
>
> Actually, I use
>
> fpu_control_t fp_ctrl;
> fp_ctrl=(_FPU_DEFAULT & ~ _FPU_EXTENDED)|_FPU_DOUBLE;
> _FPU_SETCW(fp_ctrl);
>
> before calculation.
> Thanks
> Philippe



More information about the Gcc-help mailing list