<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic IA32 and x64 machine precision? in Intel® Fortran Compiler</title>
    <link>https://community.intel.com/t5/Intel-Fortran-Compiler/IA32-and-x64-machine-precision/m-p/786190#M30152</link>
    <description>The problem with these routines that try to determine precision is that they can fall afoul of compiler optimizations, precision extensions and more. Fortran 90 defines a large number of intrinsic functions for these values which are properly hard-coded in the compiler. Please use these intead of the routines.</description>
    <pubDate>Thu, 22 Mar 2012 23:05:08 GMT</pubDate>
    <dc:creator>Steven_L_Intel1</dc:creator>
    <dc:date>2012-03-22T23:05:08Z</dc:date>
    <item>
      <title>IA32 and x64 machine precision?</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/IA32-and-x64-machine-precision/m-p/786188#M30150</link>
      <description>I need to input the machine precision information for numerical routines I'm compiling using Win32. I'm running an i7-2600K which I assume follows the standards set forward
 in the document on 
&lt;A href="http://download.intel.com/design/processor/manuals/253665.pdf" target="_blank"&gt;http://download.intel.com/design/processor/manuals/253665.pdf&lt;/A&gt; pages 4-5 
through page 4-9. &lt;BR /&gt;&lt;BR /&gt;If someone could ensure I've input correct values, it would help greatly.&lt;BR /&gt;&lt;BR /&gt;From an initial reoutine&lt;BR /&gt;C Words:&lt;BR /&gt;C I1MACH( 5) = the number of bits per integer storage unit.&lt;BR /&gt; DATA IMACH( 5) / 32 /&lt;BR /&gt;C I1MACH( 6) = the number of characters per integer storage unit.&lt;BR /&gt; DATA IMACH( 6) / 4 /&lt;BR /&gt;C Integers:&lt;BR /&gt;C I1MACH( 7) = A, the base.&lt;BR /&gt; DATA IMACH( 7) / 2 /&lt;BR /&gt;C I1MACH( 8) = S, the number of base-A bits.&lt;BR /&gt; DATA IMACH( 8) / 15 /&lt;BR /&gt;C I1MACH( 9) = A**S - 1, the largest magnitude.&lt;BR /&gt; DATA IMACH( 9) / 32767 /&lt;BR /&gt;&lt;BR /&gt;C Floating Point:&lt;BR /&gt;C I1MACH(10) = B, the base.&lt;BR /&gt; DATA IMACH(10) / 2 /&lt;BR /&gt;C Single-Precision Floating Point:&lt;BR /&gt;C I1MACH(11) = T, the number of base-B bits.&lt;BR /&gt; DATA IMACH(11) / 31 /&lt;BR /&gt;C I1MACH(12) = EMIN, the smallest exponent E.&lt;BR /&gt; DATA IMACH(12) / -126 /&lt;BR /&gt;C I1MACH(13) = EMAX, the largest exponent E.&lt;BR /&gt; DATA IMACH(13) / 127 /&lt;BR /&gt;C Double-Precision Floating Point:&lt;BR /&gt;C I1MACH(14) = T, the number of base-B bits.&lt;BR /&gt; DATA IMACH(14) / 63 /&lt;BR /&gt;C I1MACH(15) = EMIN, the smallest exponent E.&lt;BR /&gt; DATA IMACH(15) / -1022 /&lt;BR /&gt;C I1MACH(16) = EMAX, the largest exponent E.&lt;BR /&gt; DATA IMACH(16) / 1023 /&lt;BR /&gt;C&lt;BR /&gt;&lt;BR /&gt;No problem with the compilation of this rountine&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;From a routine associated with single-precision floating point operations&lt;BR /&gt;C R1MACH(1) = B**(EMIN-1), the smallest positive magnitude.&lt;BR /&gt;C EQUIVALENCE (RMACH(1),SMALL(1))&lt;BR /&gt;C INTEGER SMALL(2)&lt;BR /&gt; DATA SMALL(1) / 1.18E-38 /&lt;BR /&gt;C R1MACH(2) = B**EMAX*(1 - B**(-T)), the largest magnitude.&lt;BR /&gt;C EQUIVALENCE (RMACH(2),LARGE(1))&lt;BR /&gt;C INTEGER LARGE(2)&lt;BR /&gt; DATA LARGE(1) / 1.70E+38 /&lt;BR /&gt;C&lt;BR /&gt;&lt;BR /&gt;This rountine has the following error durint compilation:&lt;BR /&gt;"r1mach.f(121): error #6906: The value of the integer is either too great or too small, and overflow/underflow occurred. [1.70E+38]"&lt;BR /&gt;so it isn't happy with value of "large(1)" I given to it.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Thanks for any help you can provide.&lt;BR /&gt;</description>
      <pubDate>Thu, 22 Mar 2012 21:14:56 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/IA32-and-x64-machine-precision/m-p/786188#M30150</guid>
      <dc:creator>Ralph_Nelson</dc:creator>
      <dc:date>2012-03-22T21:14:56Z</dc:date>
    </item>
    <item>
      <title>IA32 and x64 machine precision?</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/IA32-and-x64-machine-precision/m-p/786189#M30151</link>
      <description>I recall that someone may have written these widely used subroutines in Fortran 90.&lt;BR /&gt;How about&lt;BR /&gt;SMALL(1) = TINY(1.)&lt;BR /&gt;LARGE(1)=HUGE(1.)&lt;BR /&gt;I suppose these intrinsics should work in DATA statements since f2003.&lt;BR /&gt;The values EMIN, EMAX need to be increased by 1 for IEEE floating point format IIRC. Take a look at &lt;CITE&gt;&lt;A href="https://community.intel.com/www.ee.ucla.edu/~vandenbe/103/lectures/flpt.pdf" target="_blank"&gt;www.ee.ucla.edu/~vandenbe/103/lectures/flpt.pdf&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/CITE&gt;</description>
      <pubDate>Thu, 22 Mar 2012 21:59:37 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/IA32-and-x64-machine-precision/m-p/786189#M30151</guid>
      <dc:creator>TimP</dc:creator>
      <dc:date>2012-03-22T21:59:37Z</dc:date>
    </item>
    <item>
      <title>IA32 and x64 machine precision?</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/IA32-and-x64-machine-precision/m-p/786190#M30152</link>
      <description>The problem with these routines that try to determine precision is that they can fall afoul of compiler optimizations, precision extensions and more. Fortran 90 defines a large number of intrinsic functions for these values which are properly hard-coded in the compiler. Please use these intead of the routines.</description>
      <pubDate>Thu, 22 Mar 2012 23:05:08 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/IA32-and-x64-machine-precision/m-p/786190#M30152</guid>
      <dc:creator>Steven_L_Intel1</dc:creator>
      <dc:date>2012-03-22T23:05:08Z</dc:date>
    </item>
  </channel>
</rss>

