<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[float-Vergleich mit sich selbst]]></title><description><![CDATA[<p>Hallo,</p>
<p>wenn ich einen float mit sich selbst vergleiche, ergibt der Ausdruck dann true, wenn es sich um eine &quot;normale&quot; Zahl (also nicht NaN, +-inf, IND o.ä.) handelt?</p>
<p>Sind operator== und operator!= beide definiert für diese Operation?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/306382/float-vergleich-mit-sich-selbst</link><generator>RSS for Node</generator><lastBuildDate>Sat, 08 Aug 2026 07:36:27 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/306382.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 26 Jul 2012 15:46:13 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to float-Vergleich mit sich selbst on Thu, 26 Jul 2012 15:46:13 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>wenn ich einen float mit sich selbst vergleiche, ergibt der Ausdruck dann true, wenn es sich um eine &quot;normale&quot; Zahl (also nicht NaN, +-inf, IND o.ä.) handelt?</p>
<p>Sind operator== und operator!= beide definiert für diese Operation?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2235983</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2235983</guid><dc:creator><![CDATA[Eisflamme]]></dc:creator><pubDate>Thu, 26 Jul 2012 15:46:13 GMT</pubDate></item><item><title><![CDATA[Reply to float-Vergleich mit sich selbst on Thu, 26 Jul 2012 15:49:06 GMT]]></title><description><![CDATA[<p><code>f != f</code> dann und nur dann, wenn f NaN ist.</p>
<p>Aber Achtung: Ein solcher Vergleich könnte wegoptimiert werden, üblich ist daher:</p>
<pre><code class="language-cpp">bool my_isnan(double value)
{
    volatile double d = value;
    return d != d;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2235984</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2235984</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 26 Jul 2012 15:49:06 GMT</pubDate></item><item><title><![CDATA[Reply to float-Vergleich mit sich selbst on Thu, 26 Jul 2012 15:51:10 GMT]]></title><description><![CDATA[<p>Kann ich irgendwie prüfen, ob der float irgendwas Nicht-Zahliges (also nicht nur NaN sondern auch inf, IND usw.) ist?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2235986</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2235986</guid><dc:creator><![CDATA[Eisflamme]]></dc:creator><pubDate>Thu, 26 Jul 2012 15:51:10 GMT</pubDate></item><item><title><![CDATA[Reply to float-Vergleich mit sich selbst on Thu, 26 Jul 2012 15:55:52 GMT]]></title><description><![CDATA[<p>Eisflamme schrieb:</p>
<blockquote>
<p>Kann ich irgendwie prüfen, ob der float irgendwas Nicht-Zahliges (also nicht nur NaN sondern auch inf, IND usw.) ist?</p>
</blockquote>
<p>Ja. Aber hast du denn weder C++11 noch Boost noch eine C99-Standardbibliothek? Die haben das nämlich alle schon eingebaut.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2235987</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2235987</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 26 Jul 2012 15:55:52 GMT</pubDate></item><item><title><![CDATA[Reply to float-Vergleich mit sich selbst on Thu, 26 Jul 2012 16:02:05 GMT]]></title><description><![CDATA[<p>Hab alles, stelle mich nur zu blöd an das zu finden. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> Habe mit numeric_limits rumgespielt, aber das hilft nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2235988</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2235988</guid><dc:creator><![CDATA[Eisflamme]]></dc:creator><pubDate>Thu, 26 Jul 2012 16:02:05 GMT</pubDate></item><item><title><![CDATA[Reply to float-Vergleich mit sich selbst on Thu, 26 Jul 2012 16:03:24 GMT]]></title><description><![CDATA[<p>Eisflamme schrieb:</p>
<blockquote>
<p>Kann ich irgendwie prüfen, ob der float irgendwas Nicht-Zahliges (also nicht nur NaN sondern auch inf, IND usw.) ist?</p>
</blockquote>
<pre><code class="language-cpp">!isfinite(x)
</code></pre>
<p>aus &lt;cmath&gt;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2235989</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2235989</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Thu, 26 Jul 2012 16:03:24 GMT</pubDate></item><item><title><![CDATA[Reply to float-Vergleich mit sich selbst on Thu, 26 Jul 2012 16:05:48 GMT]]></title><description><![CDATA[<p>Dankesehr! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Sorry nochmal. Ich kriege gerade die einfachsten Dinge nicht gebacken (geschweige denn über Google gefunden). Ich gestatte euch Facepalms, Kopfschütteln und Augendrehen über mich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2235990</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2235990</guid><dc:creator><![CDATA[Eisflamme]]></dc:creator><pubDate>Thu, 26 Jul 2012 16:05:48 GMT</pubDate></item><item><title><![CDATA[Reply to float-Vergleich mit sich selbst on Thu, 26 Jul 2012 16:16:28 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Aber Achtung: Ein solcher Vergleich könnte wegoptimiert werden</p>
</blockquote>
<p>Widerspricht das nicht der as-if-Regel?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2235996</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2235996</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Thu, 26 Jul 2012 16:16:28 GMT</pubDate></item><item><title><![CDATA[Reply to float-Vergleich mit sich selbst on Thu, 26 Jul 2012 16:30:09 GMT]]></title><description><![CDATA[<p>Bashar schrieb:</p>
<blockquote>
<p>SeppJ schrieb:</p>
<blockquote>
<p>Aber Achtung: Ein solcher Vergleich könnte wegoptimiert werden</p>
</blockquote>
<p>Widerspricht das nicht der as-if-Regel?</p>
</blockquote>
<p>Bei Fließkommaoperationen wird dies auf härteren Optimierungsstufen (GCC z.B. ffast-math, ffinite-math &amp; Co, muss man aber alles händisch aktivieren) auch mal ignoriert. Dann funktioniert die volatile-Operation (hoffentlich, ich habe es nicht getestet) immer noch. Bei nicht so harten Optimierungen sollte (wieder nicht getestet, nur geschätzt, dass es da sowieso nicht viel zu optimieren gibt) es trotz volatile ungefähr gleich schnell sein (die Pipeline wird eventuell nicht perfekt ausgelastet, weil volatile strenger ist, was Umordnungen angeht).</p>
<p>Natürlich ist der ganze Punkt dieser Optimierungen, dass sie den Fließkommastandard brechen dürfen, insofern ist das volatile bei genauerem Nachdenken doch eher unnötig, da man diese Optimierungen sowieso nicht nutzen kann, wenn NaN vorkommen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236003</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236003</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 26 Jul 2012 16:30:09 GMT</pubDate></item><item><title><![CDATA[Reply to float-Vergleich mit sich selbst on Thu, 26 Jul 2012 16:41:18 GMT]]></title><description><![CDATA[<p>-ffast-math führt allerdings zu nicht konformen Programmen. Um ehrlich zu sein, verstehe ich sowieso nicht, wieso jemand diese Option benutzen würde. Entweder ist sie performanceirrelevant, weil kaum entsprechende Berechnungen durchgeführt werden, oder aber das resultierende Programm ist mit hoher Wahrscheinlichkeit defekt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236004</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236004</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Thu, 26 Jul 2012 16:41:18 GMT</pubDate></item><item><title><![CDATA[Reply to float-Vergleich mit sich selbst on Fri, 27 Jul 2012 06:15:11 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<p>-ffast-math führt allerdings zu nicht konformen Programmen. Um ehrlich zu sein, verstehe ich sowieso nicht, wieso jemand diese Option benutzen würde. Entweder ist sie performanceirrelevant, weil kaum entsprechende Berechnungen durchgeführt werden, oder aber das resultierende Programm ist mit hoher Wahrscheinlichkeit defekt.</p>
</blockquote>
<p>Wenn Du zum Beispiel digitale Signale verarbeiten willst, dann kommt es häufig weniger auf die Genauigkeit in den letzten Kommastellen (die beeinflusst höchstens das Rauschen) an, als vielmehr um eine gute Performance. Da werden druchaus &quot;entsprechende&quot; Berechnungen durchgeführt, ohne dass das Programm dadurch gleich defekt ist. Insbesondere in Verbindung mit <code>std::complex</code> macht <code>-ffast-math</code> hierbei durchaus Sinn.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2236124</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2236124</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Fri, 27 Jul 2012 06:15:11 GMT</pubDate></item></channel></rss>