<?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 It is on such common phrases in Software Tuning, Performance Optimization &amp; Platform Monitoring</title>
    <link>https://community.intel.com/t5/Software-Tuning-Performance/Float-pointing-exceptions/m-p/1057386#M5024</link>
    <description>&lt;P&gt;&lt;SPAN id="result_box" lang="en"&gt;&lt;SPAN class="hps"&gt;It is&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;on such&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;common&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;phrases&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;I said&lt;/SPAN&gt;&lt;SPAN&gt;) I&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;was hoping to find&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;an algorithm that&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;accurately describes&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;the formation&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;of this bit&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;That&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;algorithm&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;BR /&gt;
	&lt;BR /&gt;
	&lt;SPAN class="hps"&gt;For example,&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;I will summarize&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;the two numbers&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;(0xe39d413c6f4d7d9f&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;and&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;0xe39ff6e30bcff322).&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;Using&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;material&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;from the article&lt;/SPAN&gt;&lt;SPAN&gt;, about which&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;I wrote&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;I think that&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;should not&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;Having set the&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;bit&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;"inexact".&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;My CPU&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;"thinks"&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;differently.&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;I wanted to understand&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;why.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;</description>
    <pubDate>Tue, 12 May 2015 12:57:39 GMT</pubDate>
    <dc:creator>Владимир_Б_</dc:creator>
    <dc:date>2015-05-12T12:57:39Z</dc:date>
    <item>
      <title>Float pointing exceptions</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Float-pointing-exceptions/m-p/1057381#M5019</link>
      <description>&lt;P&gt;Hi, I have a desire to understand the format of IEEE 754 (for example, I chose the addition operation), but I have a problem: the format is not accurately described the formation of the status bits. For example, I found an algorithm that also through the expansion of the mantissa of the result (three bits right) allows you to monitor an inaccurate result (rounding mode - to nearest). I decided to simulate the algorithm and compare the results with my processor intel i7 (Control Register "cwr") and I get different results. Is there a standard (or algorithm) in the public domain, by which Intel generates bit “inexact”?&lt;BR /&gt;
	&lt;BR /&gt;
	P.S: I used the article «What Every Computer Scientist Should Know About Floating-Point Arithmetic» DAVID GOLDBERG.&lt;/P&gt;</description>
      <pubDate>Fri, 08 May 2015 04:18:27 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Float-pointing-exceptions/m-p/1057381#M5019</guid>
      <dc:creator>Владимир_Б_</dc:creator>
      <dc:date>2015-05-08T04:18:27Z</dc:date>
    </item>
    <item>
      <title>Which Floating-Point</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Float-pointing-exceptions/m-p/1057382#M5020</link>
      <description>&lt;P&gt;Which Floating-Point exception has occurred in your code?&lt;/P&gt;</description>
      <pubDate>Tue, 12 May 2015 10:51:11 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Float-pointing-exceptions/m-p/1057382#M5020</guid>
      <dc:creator>Bernard</dc:creator>
      <dc:date>2015-05-12T10:51:11Z</dc:date>
    </item>
    <item>
      <title>In my code all exceptions</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Float-pointing-exceptions/m-p/1057383#M5021</link>
      <description>&lt;P&gt;&lt;SPAN id="result_box" lang="en"&gt;&lt;SPAN class="hps"&gt;In my code&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;all exceptions&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;occur&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;I understand&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;how to&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;form&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;all exceptions&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;except for&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;"inexact".&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;I would like to&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;understand it&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;better, as&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;the phrase&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;"inexact value"&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;is too&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;general&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;It would be ideal&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;if&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;having only&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;two input arguments&lt;/SPAN&gt;&lt;SPAN&gt;, I&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;would have&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;to determine&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;whether to set&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;this bit&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 12 May 2015 12:19:31 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Float-pointing-exceptions/m-p/1057383#M5021</guid>
      <dc:creator>Владимир_Б_</dc:creator>
      <dc:date>2015-05-12T12:19:31Z</dc:date>
    </item>
    <item>
      <title>Here is description of</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Float-pointing-exceptions/m-p/1057384#M5022</link>
      <description>&lt;P&gt;Here is description of Inexact Exception:&amp;nbsp;http://docs.oracle.com/cd/E19422-01/819-3693/ncg_handle.html&lt;/P&gt;

&lt;P&gt;Put it simply rounded approximated result is different from the infinitely precise result. Think about the approximation of such a value like 0.3&lt;/P&gt;</description>
      <pubDate>Tue, 12 May 2015 12:34:05 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Float-pointing-exceptions/m-p/1057384#M5022</guid>
      <dc:creator>Bernard</dc:creator>
      <dc:date>2015-05-12T12:34:05Z</dc:date>
    </item>
    <item>
      <title>What you are trying to</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Float-pointing-exceptions/m-p/1057385#M5023</link>
      <description>&lt;P&gt;What you are trying to calculate?&lt;/P&gt;</description>
      <pubDate>Tue, 12 May 2015 12:39:56 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Float-pointing-exceptions/m-p/1057385#M5023</guid>
      <dc:creator>Bernard</dc:creator>
      <dc:date>2015-05-12T12:39:56Z</dc:date>
    </item>
    <item>
      <title>It is on such common phrases</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Float-pointing-exceptions/m-p/1057386#M5024</link>
      <description>&lt;P&gt;&lt;SPAN id="result_box" lang="en"&gt;&lt;SPAN class="hps"&gt;It is&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;on such&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;common&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;phrases&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;I said&lt;/SPAN&gt;&lt;SPAN&gt;) I&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;was hoping to find&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;an algorithm that&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;accurately describes&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;the formation&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;of this bit&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;That&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;algorithm&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;BR /&gt;
	&lt;BR /&gt;
	&lt;SPAN class="hps"&gt;For example,&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;I will summarize&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;the two numbers&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;(0xe39d413c6f4d7d9f&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;and&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;0xe39ff6e30bcff322).&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;Using&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;material&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;from the article&lt;/SPAN&gt;&lt;SPAN&gt;, about which&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;I wrote&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;I think that&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;should not&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;Having set the&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;bit&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;"inexact".&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;My CPU&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;"thinks"&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;differently.&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;I wanted to understand&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;why.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 12 May 2015 12:57:39 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Float-pointing-exceptions/m-p/1057386#M5024</guid>
      <dc:creator>Владимир_Б_</dc:creator>
      <dc:date>2015-05-12T12:57:39Z</dc:date>
    </item>
    <item>
      <title>I think that you try to add</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Float-pointing-exceptions/m-p/1057387#M5025</link>
      <description>&lt;P&gt;I think that you try to add the smallest double precision number and hence probably as a result of such a addition CPU signals inexact exception because rounding is performed in order to fit the result into destination although I am not sure if this is the case.&lt;/P&gt;</description>
      <pubDate>Tue, 12 May 2015 13:19:53 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Float-pointing-exceptions/m-p/1057387#M5025</guid>
      <dc:creator>Bernard</dc:creator>
      <dc:date>2015-05-12T13:19:53Z</dc:date>
    </item>
    <item>
      <title>In fact, these numbers</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Float-pointing-exceptions/m-p/1057388#M5026</link>
      <description>&lt;P&gt;&lt;SPAN id="result_box" lang="en"&gt;&lt;SPAN class="hps"&gt;In fact&lt;/SPAN&gt;&lt;SPAN&gt;, these&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;numbers determine&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;approximately equal,&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;so I&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;do not think so&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;Well&lt;/SPAN&gt;&lt;SPAN&gt;, I realized&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;that I could not&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;find an algorithm&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;but I thank&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;you for your help&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 12 May 2015 13:31:29 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Float-pointing-exceptions/m-p/1057388#M5026</guid>
      <dc:creator>Владимир_Б_</dc:creator>
      <dc:date>2015-05-12T13:31:29Z</dc:date>
    </item>
    <item>
      <title>I am not an expert on these</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Float-pointing-exceptions/m-p/1057389#M5027</link>
      <description>&lt;P&gt;I am not an expert on these issues, but I believe that the "inexact" status is raised whenever rounding causes any bits to be dropped.&lt;/P&gt;

&lt;P&gt;Using the online conversion tool at &lt;A href="http://babbage.cs.qc.cuny.edu/IEEE-754.old/64bit.html" target="_blank"&gt;http://babbage.cs.qc.cuny.edu/IEEE-754.old/64bit.html&lt;/A&gt;, I see that for the two values above, the exponents are the same and the fractional parts (with the implicit leading bit included) are:&lt;/P&gt;

&lt;P&gt;0xe39d413c6f4d7d9f&amp;nbsp; --&amp;gt; 11101010000010011110001101111010011010111110110011111&lt;/P&gt;

&lt;P&gt;0xe39ff6e30bcff322 --&amp;gt; 11111111101101110001100001011110011111111001100100010&lt;/P&gt;

&lt;P&gt;The sum of the fractional parts is --&amp;gt; 111101001110000001111101111011000111010111000011000001&lt;/P&gt;

&lt;P&gt;Adding the fractional parts results in a carry, which means that the lowest-order-bit of the sum must be handled by rounding when the result is normalized.&amp;nbsp; Since the value of the lowest-order bit is "1", rounding either up or down is clearly "inexact".&lt;/P&gt;

&lt;P&gt;Presumably the inexact status would not be raised if all of the bits that need to be dropped in the normalization step are zero.&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 12 May 2015 17:39:51 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Float-pointing-exceptions/m-p/1057389#M5027</guid>
      <dc:creator>McCalpinJohn</dc:creator>
      <dc:date>2015-05-12T17:39:51Z</dc:date>
    </item>
    <item>
      <title>John D. McCalpin, your advice</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Float-pointing-exceptions/m-p/1057390#M5028</link>
      <description>&lt;DIV id="gt-src-tools"&gt;
	&lt;DIV id="gt-src-tools-l"&gt;
		&lt;DIV id="gt-input-tool" style="display: inline-block;"&gt;
			&lt;DIV id="tts_button"&gt;&lt;SPAN id="result_box" lang="en"&gt;&lt;SPAN class="hps"&gt;John D. McCalpin,&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;your advice&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;helped me a lot&lt;/SPAN&gt;&lt;SPAN&gt;, thank you.&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;In this situation,&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;and similar&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;situations, I&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;understand how&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;this bit&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;was formed.&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;However&lt;/SPAN&gt;&lt;SPAN&gt;,&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;if the algorithm&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;is not available,&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;it is difficult to&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;guess&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;about other things.&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;For example:&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;how much&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;protection&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;bit is used&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;in the algorithm&lt;/SPAN&gt;&lt;SPAN&gt;, or&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;in any&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;combination&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;of protective&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;bit of&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;an exception occurs&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
		&lt;/DIV&gt;
	&lt;/DIV&gt;
&lt;/DIV&gt;</description>
      <pubDate>Wed, 13 May 2015 07:45:04 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Float-pointing-exceptions/m-p/1057390#M5028</guid>
      <dc:creator>Владимир_Б_</dc:creator>
      <dc:date>2015-05-13T07:45:04Z</dc:date>
    </item>
    <item>
      <title>Protective bits become</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Float-pointing-exceptions/m-p/1057391#M5029</link>
      <description>&lt;P&gt;&lt;SPAN id="result_box" lang="en"&gt;&lt;SPAN class="hps"&gt;Protective&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;bits&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;become important&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;if&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;the exponent&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;of the input&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;operands&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;are not the same&lt;/SPAN&gt;&lt;SPAN&gt;.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 13 May 2015 07:49:02 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Float-pointing-exceptions/m-p/1057391#M5029</guid>
      <dc:creator>Владимир_Б_</dc:creator>
      <dc:date>2015-05-13T07:49:02Z</dc:date>
    </item>
    <item>
      <title>&gt;&gt;&gt;In fact, these numbers</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Float-pointing-exceptions/m-p/1057392#M5030</link>
      <description>&lt;P&gt;&amp;gt;&amp;gt;&amp;gt;In fact, these numbers determine approximately equal&amp;gt;&amp;gt;&amp;gt;&lt;/P&gt;

&lt;P&gt;Yes you are right. I used wrong IEEE 754 converter which led me astray. Thanks for spotting the error.&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 13 May 2015 08:08:56 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Float-pointing-exceptions/m-p/1057392#M5030</guid>
      <dc:creator>Bernard</dc:creator>
      <dc:date>2015-05-13T08:08:56Z</dc:date>
    </item>
    <item>
      <title>The algorithm for setting the</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Float-pointing-exceptions/m-p/1057393#M5031</link>
      <description>&lt;P&gt;The algorithm for setting the inexact bit is not discussed in the IEEE-754 standard, but the definition is certainly clear -- a result is "inexact" if it differs from the result that would be obtained with an unbounded exponent field and an unbounded fraction field.&lt;/P&gt;

&lt;P&gt;An algorithm that might work is:&amp;nbsp; If any non-zero bits are dropped due to either shifting of input values OR if any non-zero bits are dropped due to&amp;nbsp; normalization of output values, then it is presumed that the result does not match the infinite-precision result and the inexact exception is raised.&lt;/P&gt;

&lt;P&gt;This may not be sufficiently precise.&amp;nbsp; It might be possible for the shift of the input value to drop bits in a way that exactly counteracts the effect of the normalization of the output value, leading to a "false positive" using the algorithm above.&amp;nbsp; I am sure that smart people have figured a robust way of setting this that does not require actually having the infinite precision result, but it is hard to get very excited about it -- the class of FP operations that *do not* produce inexact results is sufficiently small that the ability to trap on the exception is not useful very often.&lt;/P&gt;</description>
      <pubDate>Wed, 13 May 2015 18:58:46 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Float-pointing-exceptions/m-p/1057393#M5031</guid>
      <dc:creator>McCalpinJohn</dc:creator>
      <dc:date>2015-05-13T18:58:46Z</dc:date>
    </item>
    <item>
      <title>I wonder how CPU can</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Float-pointing-exceptions/m-p/1057394#M5032</link>
      <description>&lt;P&gt;I wonder how CPU can approximate infinitely precise "exact" result?&lt;/P&gt;

&lt;P&gt;I think that in case of double precision FP 56-bit fractional part can represent at some degree exact result and when during the calculation there is recorded loss if significand digits then inexact exception can be raised.&lt;/P&gt;</description>
      <pubDate>Sun, 17 May 2015 11:59:29 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Float-pointing-exceptions/m-p/1057394#M5032</guid>
      <dc:creator>Bernard</dc:creator>
      <dc:date>2015-05-17T11:59:29Z</dc:date>
    </item>
    <item>
      <title>Not surprisingly, people have</title>
      <link>https://community.intel.com/t5/Software-Tuning-Performance/Float-pointing-exceptions/m-p/1057395#M5033</link>
      <description>&lt;P&gt;Not surprisingly, people have figured out how to avoid the possible "false positive" case that I mentioned above.&lt;/P&gt;

&lt;P&gt;A readable but reasonably thorough reference is available at &lt;A href="http://www.cs.ucla.edu/digital_arithmetic/files/ch8.pdf" target="_blank"&gt;http://www.cs.ucla.edu/digital_arithmetic/files/ch8.pdf&lt;/A&gt;&lt;/P&gt;

&lt;P&gt;This reference shows that keeping three extra bits of precision is sufficient to guarantee that all IEEE 754 rounding modes can be performed correctly and that the inexact exception can be detected unambiguously.&amp;nbsp;&amp;nbsp; The trick is that the 3rd extra bit (called the "sticky bit") must be the logical OR of all of the additional bits of the intermediate computation.&amp;nbsp;&lt;/P&gt;

&lt;UL&gt;
	&lt;LI&gt;For add/subtract operations the number of "additional bits" depends on how many bits the smaller argument must be shifted to the right before the operands are properly aligned for the addition.&amp;nbsp; If any of the bits being shifted "off the end" are non-zero, then the "sticky bit" will be set for use in the rounding and inexact flag setting steps.&amp;nbsp;&lt;/LI&gt;
	&lt;LI&gt;For multiplication operations the number of "additional bits" is equal to the number of bits of each operand -- i.e., multiplying two values with "m" bit fractions will produce a "2m" bit intermediate result, but (except for the Fused Multiply-Add operation) only three extra bits need to be kept (provided that the third one is the "sticky bit").&lt;/LI&gt;
&lt;/UL&gt;

&lt;P&gt;Using the notation of the reference above, the inexact exception is raised if G+R+T=1, where G and R are the two bits of the intermediate result immediately below the low-order bit of the final (normalized) result and T is the "sticky bit" (the logical "OR" of all additional bits of the intermediate result).&lt;/P&gt;</description>
      <pubDate>Mon, 18 May 2015 15:00:10 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Tuning-Performance/Float-pointing-exceptions/m-p/1057395#M5033</guid>
      <dc:creator>McCalpinJohn</dc:creator>
      <dc:date>2015-05-18T15:00:10Z</dc:date>
    </item>
  </channel>
</rss>

