在 2020/8/6 13:25, Takashi Inoue 写道:
> Hi,
> 
>> Did you compile your program with the i686 compiler or the x86_64 compiler? 
>> I suspect it has something to do with the
>> floating-point environment.
> 
> My windows is 64bit version widows 8.1.
> So, I installed x86_64 package via msys2 pacman.
> 
> 

Would you please check the sum of

  1.9999999999999998

and

  1.1102230246251564e-16,

in both the main thread and an OMP thread?


IEEE-conforming double precision (with a 53-bit mantissa) arithmetic shall yield

  1.9999999999999998,

while a defective implementation (for example, if your FORTRAN compiler 
performs 64-bit addition with x87, rounds the result
accordingly, then double-rounds it to 53-bit precision), you may get 2.0 [1].

The mingw-w64 CRT initializes the x87 control word to 64-bit precision, in 
contrast to MSVCRT which defaults to 53-bit
precision, and may produce unexpected results under rare circumstances.


[1] https://wandbox.org/permlink/v63VObkDke527VrJ



-- 
Best regards,
LH_Mouse

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to