- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
We currently in the process to upgrade our compiler from IF9 to IF11.We identified an issue related to the Floating Point model used in IF11 compared to IF9 which leads to different results due to rounding.
The difference originate from the order the operands are promoted to double precision. In IF9, all terms of an expression are promoted to double if the expression involves a double. However in IF11, only the terms that are directly involved with a double are promoted (eg. In the following expression (R+R)*D, where R is a float and D a double, the operation + is performed in single precision with IF11 and in double precision with IF9).
Is there a switch I could use in IF11 that would force the compiler to use the same floating point model as in IF9 when optimisation is disbaled?
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
If all you are looking for is promotion to double, regardless of your instruction set choice, you should write it in:
(in pre-f90 style)
(dble+R)
Are you referring to the fact that 32-bit ifort default changed from x87 (/arch:ia32 for ifort 11) to /arch:SSE2 in ifort 11 (ifort 9 option /QxW) ?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page