<?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[Ganzzahlige Potenz]]></title><description><![CDATA[<p>Hallo alle miteinander,</p>
<p>eine kurze frage: gibt es eine möglichkeit auch ganzzahlige potenzen einer zahl zu berechnen? pow( double, int ) ist dafür ja nicht so geeignet, oder???<br />
danke schon mal im voraus <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>
]]></description><link>https://www.c-plusplus.net/forum/topic/302982/ganzzahlige-potenz</link><generator>RSS for Node</generator><lastBuildDate>Tue, 11 Aug 2026 00:01:39 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/302982.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 02 May 2012 16:02:37 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Ganzzahlige Potenz on Wed, 02 May 2012 16:02:37 GMT]]></title><description><![CDATA[<p>Hallo alle miteinander,</p>
<p>eine kurze frage: gibt es eine möglichkeit auch ganzzahlige potenzen einer zahl zu berechnen? pow( double, int ) ist dafür ja nicht so geeignet, oder???<br />
danke schon mal im voraus <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2207654</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2207654</guid><dc:creator><![CDATA[VollNoob]]></dc:creator><pubDate>Wed, 02 May 2012 16:02:37 GMT</pubDate></item><item><title><![CDATA[Reply to Ganzzahlige Potenz on Wed, 02 May 2012 16:10:12 GMT]]></title><description><![CDATA[<p>Wie wärs mit dem Multiplikationsoperator (*)?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2207663</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2207663</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Wed, 02 May 2012 16:10:12 GMT</pubDate></item><item><title><![CDATA[Reply to Ganzzahlige Potenz on Wed, 02 May 2012 16:15:37 GMT]]></title><description><![CDATA[<p>VollNoob schrieb:</p>
<blockquote>
<p>eine kurze frage: gibt es eine möglichkeit auch ganzzahlige potenzen einer zahl zu berechnen? pow( double, int ) ist dafür ja nicht so geeignet, oder???</p>
</blockquote>
<p>Warum soll pow(double,int) dafür nicht geeignet sein?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2207665</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2207665</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Wed, 02 May 2012 16:15:37 GMT</pubDate></item><item><title><![CDATA[Reply to Ganzzahlige Potenz on Wed, 02 May 2012 16:18:55 GMT]]></title><description><![CDATA[<p>VollNoob schrieb:</p>
<blockquote>
<p>gibt es eine möglichkeit auch ganzzahlige potenzen einer zahl zu berechnen? pow( double, int ) ist dafür ja nicht so geeignet, oder???</p>
</blockquote>
<p>Warum nicht? Die nimmt doch als Potenz ein int!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2207669</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2207669</guid><dc:creator><![CDATA[w_t_f]]></dc:creator><pubDate>Wed, 02 May 2012 16:18:55 GMT</pubDate></item><item><title><![CDATA[Reply to Ganzzahlige Potenz on Wed, 02 May 2012 16:19:00 GMT]]></title><description><![CDATA[<p>Warum ist das nicht im Standard enthalten?</p>
<p>(pow mit double zu int/long casten gibt Rundungsfehler, pow ausschreiben ist nur zur Compiletime möglich und ausserdem unschön (std::pow&lt;int&gt;(b) wäre da eleganter))</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2207670</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2207670</guid><dc:creator><![CDATA[langefrage]]></dc:creator><pubDate>Wed, 02 May 2012 16:19:00 GMT</pubDate></item><item><title><![CDATA[Reply to Ganzzahlige Potenz on Wed, 02 May 2012 20:12:45 GMT]]></title><description><![CDATA[<p>Das einfachste wäre eine Schleife... Ansonsten ist es effizienter, die Zahl immer zu verdoppeln bis unter die Potenz eben...</p>
<p>So sähe das dann optimiert aus: (Ob es in der Praxis effizienter ist, ist wieder eine andere Frage)</p>
<pre><code class="language-cpp">int GetUsedBits(unsigned int val)
{
    if(val == 0) return 0;
    int used_bits = 8 * sizeof(unsigned int) - 1;
    while(!(val &amp; (1 &lt;&lt; used_bits))) --used_bits;
    return used_bits + 1;

}

double uint_pow(double base, unsigned int exp)
{
    const int size = 8 * sizeof(unsigned int);
    double buffer[8 * sizeof(unsigned int)];
    int used_bits = GetUsedBits(exp);
    buffer[0] = base;
    for(int i = 1; i &lt; used_bits; ++i) //buffer[i] = base ^ (2 ^ i)
    {
        buffer[i] = buffer[i-1] * buffer[i-1];
    }

    double product = 1.0;
    for(int i = 0; i &lt; used_bits; ++i)
    {
        if(exp &amp; (1 &lt;&lt; i)) product *= buffer[i];
    }
    return product;
}

double int_pow(double base, int exp)
{
    if(exp == 0) return 1;
    else if(exp &gt; 0) return uint_pow(base, exp);
    else return 1.0 / uint_pow(base, -exp);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2207675</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2207675</guid><dc:creator><![CDATA[wxSkip]]></dc:creator><pubDate>Wed, 02 May 2012 20:12:45 GMT</pubDate></item><item><title><![CDATA[Reply to Ganzzahlige Potenz on Wed, 02 May 2012 20:12:33 GMT]]></title><description><![CDATA[<p>Kombinierte Lösung:</p>
<pre><code class="language-cpp">int GetUsedBits(unsigned int val) //kann evtl. noch optimiert werden
{
    if(val == 0) return 0;
    int used_bits = 8 * sizeof(unsigned int) - 1;
    while(!(val &amp; (1 &lt;&lt; used_bits))) --used_bits;
    return used_bits + 1;

}

double uint_pow_raw(double base, unsigned int exp)
{
    const int size = 8 * sizeof(unsigned int);
    double buffer[8 * sizeof(unsigned int)];
    int used_bits = GetUsedBits(exp);
    buffer[0] = base;
    for(int i = 1; i &lt; used_bits; ++i) //buffer[i] = base ^ (2 ^ i)
    {
        buffer[i] = buffer[i-1] * buffer[i-1];
    }

    double product = 1.0;
    for(int i = 0; i &lt; used_bits; ++i)
    {
        if(exp &amp; (1 &lt;&lt; i)) product *= buffer[i];
    }
    return product;
}

double uint_pow_raw2(double base, int exp)
{
    double product = 1.0;
    for(int i = 0; i &lt; exp; ++i)
    {
        product *= base;
    }
    return product;
}

double uint_pow(double base, unsigned int exp)
{
    return exp &gt; 45 ? uint_pow_raw(base, exp) : uint_pow_raw2(base, exp);
}

double int_pow(double base, int exp)
{
    if(exp == 0) return 1;
    else if(exp &gt; 0) return uint_pow(base, exp);
    else return 1.0 / uint_pow(base, -exp);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2207684</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2207684</guid><dc:creator><![CDATA[wxSkip]]></dc:creator><pubDate>Wed, 02 May 2012 20:12:33 GMT</pubDate></item><item><title><![CDATA[Reply to Ganzzahlige Potenz on Wed, 02 May 2012 19:57:38 GMT]]></title><description><![CDATA[<p>wxSkip schrieb:</p>
<blockquote>
<pre><code class="language-cpp">const int size = 8 * sizeof(unsigned int);
    double buffer[size];
</code></pre>
</blockquote>
<p>Was ist das denn für eine Sprache?</p>
<p>Ansonsten wäre für dich vielleicht die <a href="http://de.wikipedia.org/wiki/Bin%C3%A4re_Exponentiation" rel="nofollow">binäre Exponentiation</a> interessant. Die macht prinzipiell das gleiche wie du, nur ohne VLA-Buffers.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2207765</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2207765</guid><dc:creator><![CDATA[wiebitte]]></dc:creator><pubDate>Wed, 02 May 2012 19:57:38 GMT</pubDate></item><item><title><![CDATA[Reply to Ganzzahlige Potenz on Wed, 02 May 2012 19:59:53 GMT]]></title><description><![CDATA[<p>wxSkip schrieb:</p>
<blockquote>
<pre><code class="language-cpp">const int size = 8 * sizeof(unsigned int);
    double buffer[size];
</code></pre>
</blockquote>
<p>Obwohl das eine Compile-Zeit Konstante ist, ist das verdammt hässlich. (Und so auch IB)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2207766</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2207766</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 02 May 2012 19:59:53 GMT</pubDate></item><item><title><![CDATA[Reply to Ganzzahlige Potenz on Wed, 02 May 2012 20:10:32 GMT]]></title><description><![CDATA[<p>Hab mir schon überlegt, ob ich std::array (C++11) verwenden soll, aber ich fand diesen Workaround nicht so schlimm (Schließlich ist das kein VLA und der Compiler hat an der Konstante auch auf hoher Warnstufe nichts zu meckern. (Ich habe schon überlegt, CHAR_BIT einzubauen, das war mir dann aber zu viel.)</p>
<p>@Hacker: Was meinst du mit IB?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2207768</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2207768</guid><dc:creator><![CDATA[wxSkip]]></dc:creator><pubDate>Wed, 02 May 2012 20:10:32 GMT</pubDate></item><item><title><![CDATA[Reply to Ganzzahlige Potenz on Wed, 02 May 2012 20:07:41 GMT]]></title><description><![CDATA[<p>wxSkip schrieb:</p>
<blockquote>
<p>Hab mir schon überlegt, ob ich std::array verwenden soll, aber ich fand diesen Workaround nicht so schlimm (Schließlich ist das kein VLA und der Compiler hat an der Konstante auch auf hoher Warnstufe nichts zu meckern. (Ich habe schon überlegt, CHAR_BIT einzubauen, das war mir dann aber zu viel.)</p>
<p>@Hacker: Was meinst du mit IB?</p>
</blockquote>
<p>Laut pumuckl erlaubt das so nur eine Erweiterung des GCC.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2207770</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2207770</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 02 May 2012 20:07:41 GMT</pubDate></item><item><title><![CDATA[Reply to Ganzzahlige Potenz on Wed, 02 May 2012 20:13:36 GMT]]></title><description><![CDATA[<p>Okay, habs jetzt umeditiert (Und: nein, keine Makros, sondern hässliche Redundanz).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2207773</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2207773</guid><dc:creator><![CDATA[wxSkip]]></dc:creator><pubDate>Wed, 02 May 2012 20:13:36 GMT</pubDate></item><item><title><![CDATA[Reply to Ganzzahlige Potenz on Thu, 03 May 2012 07:54:32 GMT]]></title><description><![CDATA[<p>Was soll eigentlich die ganze Sache mit den Arrays? Fuer mich sieht es nach premature optimization aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2207817</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2207817</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Thu, 03 May 2012 07:54:32 GMT</pubDate></item><item><title><![CDATA[Reply to Ganzzahlige Potenz on Thu, 03 May 2012 08:02:23 GMT]]></title><description><![CDATA[<p>knivil schrieb:</p>
<blockquote>
<p>Was soll eigentlich die ganze Sache mit den Arrays? Fuer mich sieht es nach premature optimization aus.</p>
</blockquote>
<p>Was zum Teufel hat denn das mit Premature Optimization zu tun? Das ist einfach eine Selbstverständlichkeit und hat mit etwas nachdenken bevor man etwas tut zu tun (schließlich wählst du ja auch nicht einfach so einen std::vector, sondern überlegst welcher Container für deine Zwecke am effizientesten ist (greifst du oft auf Elemente zu, die in der Mitte sind? Fügst du oft Elemente ein?...) damit du nicht immer deinen ganzen Code umschreiben musst).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2207822</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2207822</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 03 May 2012 08:02:23 GMT</pubDate></item><item><title><![CDATA[Reply to Ganzzahlige Potenz on Thu, 03 May 2012 08:18:40 GMT]]></title><description><![CDATA[<p>Laber Rhabarber. Du hast nicht verstanden. Warum braucht es ein Array, um eine ganzzahlige Potenz zu berechnen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2207827</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2207827</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Thu, 03 May 2012 08:18:40 GMT</pubDate></item><item><title><![CDATA[Reply to Ganzzahlige Potenz on Thu, 03 May 2012 08:36:40 GMT]]></title><description><![CDATA[<p>Hacker schrieb:</p>
<blockquote>
<p>wxSkip schrieb:</p>
<blockquote>
<p>Hab mir schon überlegt, ob ich std::array verwenden soll, aber ich fand diesen Workaround nicht so schlimm (Schließlich ist das kein VLA und der Compiler hat an der Konstante auch auf hoher Warnstufe nichts zu meckern. (Ich habe schon überlegt, CHAR_BIT einzubauen, das war mir dann aber zu viel.)</p>
<p>@Hacker: Was meinst du mit IB?</p>
</blockquote>
<p>Laut pumuckl erlaubt das so nur eine Erweiterung des GCC.</p>
</blockquote>
<p>Quatsch, das ist definitiv eine Compilezeitkonstante, damit darf man Arrays erzeugen.</p>
<p>Hacker schrieb:</p>
<blockquote>
<p>knivil schrieb:</p>
<blockquote>
<p>Was soll eigentlich die ganze Sache mit den Arrays? Fuer mich sieht es nach premature optimization aus.</p>
</blockquote>
<p>Was zum Teufel hat denn das mit Premature Optimization zu tun? Das ist einfach eine Selbstverständlichkeit und hat mit etwas nachdenken bevor man etwas tut zu tun (schließlich wählst du ja auch nicht einfach so einen std::vector, sondern überlegst welcher Container für deine Zwecke am effizientesten ist (greifst du oft auf Elemente zu, die in der Mitte sind? Fügst du oft Elemente ein?...) damit du nicht immer deinen ganzen Code umschreiben musst).</p>
</blockquote>
<p>Ich denke, er meinte eher den ganzen Code.<br />
Würde mal messen, um wie viel das schneller ist als</p>
<pre><code class="language-cpp">double uint_pow(double base, unsigned int exp)
{
   double result = base;
   for(unsigned i = 2; i &lt; exp; ++i)
       result *= base;
   return result;
}

double int_pow(double base, int exp)
{
    if(exp == 0) return 1;
    else if(exp &gt; 0) return uint_pow(base, exp);
    else return 1.0 / uint_pow(base, -exp);
}
</code></pre>
<p>Edit: Habe es mit 100.000.000 durchläufen getestet, der Exponent immer zwischen 0 und 49 (zufällig), die Basis immer 2. Ergebnis war dass die primitive Variante geringfügig schneller ist. (6.509s vs 6.459s)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2207828</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2207828</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Thu, 03 May 2012 08:36:40 GMT</pubDate></item><item><title><![CDATA[Reply to Ganzzahlige Potenz on Thu, 03 May 2012 09:41:46 GMT]]></title><description><![CDATA[<p>Für sehr große Zahlen im Cryptobereich wird oft sowas in der Art genommen:</p>
<pre><code class="language-cpp">int ipow(int base, int exp)
{
    int result = 1;
    for(; exp; exp &gt;&gt;= 1)
    {
        (exp &amp; 1) &amp;&amp; (result *= base);
        base *= base;
    }
    return result;
}
</code></pre>
<p><em>Edit: Achso, die Basis soll ja FP sein. Okay, dann eben nicht.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2207854</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2207854</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Thu, 03 May 2012 09:41:46 GMT</pubDate></item><item><title><![CDATA[Reply to Ganzzahlige Potenz on Thu, 03 May 2012 09:55:42 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">double d1=1.5,d2;
int    ip=2;
d2 = pow(d1,ip);
</code></pre>
<p>Sollte für d2 etwas anderes als 2.25 herauskommen, müssen wir weiter nachdenken! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2207860</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2207860</guid><dc:creator><![CDATA[berniebutt]]></dc:creator><pubDate>Thu, 03 May 2012 09:55:42 GMT</pubDate></item><item><title><![CDATA[Reply to Ganzzahlige Potenz on Thu, 03 May 2012 10:09:28 GMT]]></title><description><![CDATA[<p>Ethon schrieb:</p>
<blockquote>
<p>Edit: Habe es mit 100.000.000 durchläufen getestet, der Exponent immer zwischen 0 und 49 (zufällig), die Basis immer 2. Ergebnis war dass die primitive Variante geringfügig schneller ist. (<strong>6.509s vs 6.459s</strong>)</p>
</blockquote>
<p>Dann ist das Ergebnis nicht, dass das zweite schneller ist, sondern dass beide gleich schnell sind.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2207863</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2207863</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 03 May 2012 10:09:28 GMT</pubDate></item><item><title><![CDATA[Reply to Ganzzahlige Potenz on Thu, 03 May 2012 12:18:19 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Ethon schrieb:</p>
<blockquote>
<p>Edit: Habe es mit 100.000.000 durchläufen getestet, der Exponent immer zwischen 0 und 49 (zufällig), die Basis immer 2. Ergebnis war dass die primitive Variante geringfügig schneller ist. (<strong>6.509s vs 6.459s</strong>)</p>
</blockquote>
<p>Dann ist das Ergebnis nicht, dass das zweite schneller ist, sondern dass beide gleich schnell sind.</p>
</blockquote>
<p>Mit einer 0 mehr wächst der Unterschied bereits auf knapp 200ms. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
Obwohl ich denke dass eine Menge Zeit für random draufgeht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2207914</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2207914</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Thu, 03 May 2012 12:18:19 GMT</pubDate></item><item><title><![CDATA[Reply to Ganzzahlige Potenz on Thu, 03 May 2012 14:08:16 GMT]]></title><description><![CDATA[<p>wxSkip schrieb:</p>
<blockquote>
<p>...</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
<p>*knivel-zustimm*</p>
<p>Das ist nur eine ganz kompliziert aufgeschriebene Version eines eigentlich sehr simplen Algorithmus': &quot;square and multiply&quot;.</p>
<p>Ein Array braucht man dafür nicht.</p>
<pre><code class="language-cpp">double pow(double base, int exp)
{
  if (exp&lt;0) return pow(1.0/base,-exp);
  double result = 1;
  while (exp) {
    if (exp &amp; 1) result *= base;
    base = base * base;
    exp &gt;&gt;= 1;
  }
  return result;
}
</code></pre>
<p>Aber ob das jetzt schneller als std::pow(double,int) ist, wage ich zu bezweifeln ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2207946</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2207946</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Thu, 03 May 2012 14:08:16 GMT</pubDate></item><item><title><![CDATA[Reply to Ganzzahlige Potenz on Thu, 03 May 2012 15:04:13 GMT]]></title><description><![CDATA[<p>Kann eine x86 CPU nicht sowieso hardwarebeschleunig potenzieren, dh. alles Selbstgebaute ist sowieso langsamer und man sollte Insintrics nutzen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2207970</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2207970</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Thu, 03 May 2012 15:04:13 GMT</pubDate></item><item><title><![CDATA[Reply to Ganzzahlige Potenz on Thu, 03 May 2012 15:15:49 GMT]]></title><description><![CDATA[<p>Ethon schrieb:</p>
<blockquote>
<p>Kann eine x86 CPU nicht sowieso hardwarebeschleunig potenzieren, dh. alles Selbstgebaute ist sowieso langsamer und man sollte Insintrics nutzen?</p>
</blockquote>
<p>Nicht dass ich wüsste. Es gibt jedoch 8087-Assemblerbefehle für y*log(x) und 2<sup>x</sup>-1, was natürlich enorm hilfreich ist. Aber die sind auch nicht gerade trivial. Also nix was nur einen Takt braucht.</p>
<p>Weiß nicht, ob es das auch für SSE gibt, vermutlich wird es was ähnliches geben. Aber man kann die Mathematik nicht austricksen. pow(real, real) ist keine triviale Operation, das braucht immer ordentlich Rechenaufwand.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2207977</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2207977</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 03 May 2012 15:15:49 GMT</pubDate></item><item><title><![CDATA[Reply to Ganzzahlige Potenz on Thu, 03 May 2012 17:10:54 GMT]]></title><description><![CDATA[<p>Die ersten PCs hatten keinen CoProzessor für Fliesskomma (xx87) oder dieser musste für ordentlich Geld nachgerüstet werden. Ohne CoProzesor wurde alles langsam mit Emulatoren (in einer library) gemacht. Seht euch den Code dieser Emulatoren (wahrscheinlich Assembler) an und vergesst dieses Thema! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2208006</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2208006</guid><dc:creator><![CDATA[berniebutt]]></dc:creator><pubDate>Thu, 03 May 2012 17:10:54 GMT</pubDate></item><item><title><![CDATA[Reply to Ganzzahlige Potenz on Thu, 03 May 2012 19:27:52 GMT]]></title><description><![CDATA[<p>berniebutt schrieb:</p>
<blockquote>
<p>Die ersten PCs hatten keinen CoProzessor für Fliesskomma (xx87) oder dieser musste für ordentlich Geld nachgerüstet werden. Ohne CoProzesor wurde alles langsam mit Emulatoren (in einer library) gemacht. Seht euch den Code dieser Emulatoren (wahrscheinlich Assembler) an und vergesst dieses Thema! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
</blockquote>
<p>AFAIK hatten die Fließkomma-Zahl Berechnungen durch komplexe Ganz-zahl Berechnungen gelöst; heute gibt es natürlich die FPU.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2208055</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2208055</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 03 May 2012 19:27:52 GMT</pubDate></item></channel></rss>