在 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
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Mingw-w64-public mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
