<?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[Benennung von distance&#x2F;squared_distance und weiteren Hilfsfunktionen]]></title><description><![CDATA[<p>Gibt es irgendeine Standardbenamsung von folgenden Hilfsfunktionen, die immer wieder auftreten?</p>
<pre><code class="language-cpp">double squared(double i) { return i*i; }
double squared_norm(point a) { return squared(a.x) + squared(a.y); }
double squared_distance(point a, point b) { return squared_norm(a-b); }
double real_norm(point a) { return std::sqrt(squared_norm(a)); }
double real_distance(point a, point b) { std::sqrt(squared_distance(a, b)); }

double cross_product(point a, point b) { return a.x*b.y-a.y*b.x; }
double relative_cross_product(point a, point b, point c) { return cross_product(b-a, c-a); }
</code></pre>
<p>Verwendet jemand sogar Einheiten (Länge vs. quadrierte Länge) um Fehler ganz auszuschliessen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/326731/benennung-von-distance-squared_distance-und-weiteren-hilfsfunktionen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 26 May 2026 16:29:12 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/326731.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 04 Jul 2014 11:03:03 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Benennung von distance&#x2F;squared_distance und weiteren Hilfsfunktionen on Fri, 04 Jul 2014 11:03:03 GMT]]></title><description><![CDATA[<p>Gibt es irgendeine Standardbenamsung von folgenden Hilfsfunktionen, die immer wieder auftreten?</p>
<pre><code class="language-cpp">double squared(double i) { return i*i; }
double squared_norm(point a) { return squared(a.x) + squared(a.y); }
double squared_distance(point a, point b) { return squared_norm(a-b); }
double real_norm(point a) { return std::sqrt(squared_norm(a)); }
double real_distance(point a, point b) { std::sqrt(squared_distance(a, b)); }

double cross_product(point a, point b) { return a.x*b.y-a.y*b.x; }
double relative_cross_product(point a, point b, point c) { return cross_product(b-a, c-a); }
</code></pre>
<p>Verwendet jemand sogar Einheiten (Länge vs. quadrierte Länge) um Fehler ganz auszuschliessen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2406984</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2406984</guid><dc:creator><![CDATA[wurzelhochzwei]]></dc:creator><pubDate>Fri, 04 Jul 2014 11:03:03 GMT</pubDate></item><item><title><![CDATA[Reply to Benennung von distance&#x2F;squared_distance und weiteren Hilfsfunktionen on Fri, 04 Jul 2014 11:59:12 GMT]]></title><description><![CDATA[<p>Sowas nennt man eigentlich Methoden eines (mathematischen) Vektors. Üblicherweise wird dann auch eine Vektor-Klasse benutzt anstelle händisch mit Points rumzuhantieren.</p>
<p>Einheiten sind was für Physiker <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":-P"
      alt="😛"
    /><br />
Mathematiker (dazu zähle ich auch Informatiker) brauchen das nicht. Natürlich sollte man immer die richtigen Datentypen nehmen - aber eine Fließkommazahl ist quadriert immernoch eine Fließkommazahl.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2407002</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2407002</guid><dc:creator><![CDATA[oenone]]></dc:creator><pubDate>Fri, 04 Jul 2014 11:59:12 GMT</pubDate></item><item><title><![CDATA[Reply to Benennung von distance&#x2F;squared_distance und weiteren Hilfsfunktionen on Fri, 04 Jul 2014 12:09:54 GMT]]></title><description><![CDATA[<p>oenone schrieb:</p>
<blockquote>
<p>Einheiten sind was für Physiker <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":-P"
      alt="😛"
    /><br />
Mathematiker (dazu zähle ich auch Informatiker) brauchen das nicht.</p>
</blockquote>
<p>Es gibt auch Physiker die programmieren. <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="🙂"
    /><br />
Einheitenumrechnungen braucht man normalerweise maximal in der Oberfläche und bei der Ausgabe. So das der Nutzer beliebige Einheiten angeben kann.<br />
Intern, bei den Berechnungen, sollte man, um Fehler zu vermeiden, immer mit SI-Einheiten arbeiten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2407004</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2407004</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Fri, 04 Jul 2014 12:09:54 GMT</pubDate></item><item><title><![CDATA[Reply to Benennung von distance&#x2F;squared_distance und weiteren Hilfsfunktionen on Fri, 04 Jul 2014 12:20:38 GMT]]></title><description><![CDATA[<p>wurzelhochzwei schrieb:</p>
<blockquote>
<p>Gibt es irgendeine Standardbenamsung von folgenden Hilfsfunktionen, die immer wieder auftreten?</p>
</blockquote>
<p>Hab gerade ein paar Bibliotheken angeschaut, die Vector3D oder so anbieten und einheitlich war's nicht gerade.</p>
<p>Ich würde überlegen, weniger Funktionen anbieten und dem Aufrufer noch was lassen. (Vielleicht übertrieben jetzt, aber ungefär diese Richtung)</p>
<pre><code class="language-cpp">double squared(double i) { return i*i; }//jo
double squared_norm(point a) { return squared(a.x) + squared(a.y); }//squared(point)
double squared_distance(point a, point b) { return squared_norm(a-b); }//squared(a-b)
double real_norm(point a) { return std::sqrt(squared_norm(a)); }//abs(point)
double real_distance(point a, point b) { std::sqrt(squared_distance(a, b)); }//abs(a-b)

double cross_product(point a, point b) { return a.x*b.y-a.y*b.x; }//jo
double relative_cross_product(point a, point b, point c) { return cross_product(b-a, c-a); }//nö
</code></pre>
<p>wurzelhochzwei schrieb:</p>
<blockquote>
<p>Verwendet jemand sogar Einheiten (Länge vs. quadrierte Länge) um Fehler ganz auszuschliessen?</p>
</blockquote>
<p>Nö.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2407005</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2407005</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Fri, 04 Jul 2014 12:20:38 GMT</pubDate></item><item><title><![CDATA[Reply to Benennung von distance&#x2F;squared_distance und weiteren Hilfsfunktionen on Fri, 04 Jul 2014 12:23:49 GMT]]></title><description><![CDATA[<p>oenone schrieb:</p>
<blockquote>
<p>Sowas nennt man eigentlich Methoden eines (mathematischen) Vektors.</p>
</blockquote>
<p>Nö. Das als freie Funktionen zu machen ist schon besser.</p>
<p>oenone schrieb:</p>
<blockquote>
<p>Üblicherweise wird dann auch eine Vektor-Klasse benutzt anstelle händisch mit Points rumzuhantieren.</p>
</blockquote>
<p>Wie, händisch?<br />
Was ausser dem Namen ändert sich denn durch die Verwendung einer &quot;Vektor&quot; Klasse?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2407007</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2407007</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Fri, 04 Jul 2014 12:23:49 GMT</pubDate></item><item><title><![CDATA[Reply to Benennung von distance&#x2F;squared_distance und weiteren Hilfsfunktionen on Fri, 04 Jul 2014 15:43:58 GMT]]></title><description><![CDATA[<p>Braunstein schrieb:</p>
<blockquote>
<p>Intern, bei den Berechnungen, sollte man, um Fehler zu vermeiden, immer mit SI-Einheiten arbeiten.</p>
</blockquote>
<p>Programmier unabhängig von den Einheiten. Einheiten sind was für den Anwender.</p>
<p>Was man machen kann, ist die Beachtung der Dimension von Werten, wie der Threadersteller vorschlägt. Das ist eine bekannte Methode, aber ich habe es weder selber je benutzt, noch irgendwo gesehen. Gründe:<br />
1. Bei fremder Software bin ich mir oft recht sicher, dass die Programmierer die Methode gar nicht kennen.<br />
2. Bei mir selber bin ich zu faul. Es ist Zusatzaufwand und die Art von Fehler, die dadurch vermieden wird, ist mir noch nie untergekommen. Ich benenne meine Variablen aussagekräftig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2407023</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2407023</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 04 Jul 2014 15:43:58 GMT</pubDate></item><item><title><![CDATA[Reply to Benennung von distance&#x2F;squared_distance und weiteren Hilfsfunktionen on Fri, 04 Jul 2014 17:24:58 GMT]]></title><description><![CDATA[<p>3. Es ist schwer abzuschätzen wie oft man auf Anwenderseite dann blöd rumcasten müsste, weil man doch korrekterweise eine &quot;verbotene&quot; Konvertierung braucht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2407031</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2407031</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Fri, 04 Jul 2014 17:24:58 GMT</pubDate></item><item><title><![CDATA[Reply to Benennung von distance&#x2F;squared_distance und weiteren Hilfsfunktionen on Fri, 04 Jul 2014 20:20:47 GMT]]></title><description><![CDATA[<p>Warum &quot;real_norm&quot; und nicht einfach &quot;norm&quot; oder, falls es nicht so mathe-lastig sein muss, &quot;length&quot;? Das &quot;real&quot; klingt irgendwie lächerlich.</p>
<p>Dinge wie &quot;relative_cross_product&quot; sind höchstens nützlich, wenn sie exzessiv häufig und mit komplizierten Argumenten aufgerufen werden. Dadurch, dass man zuerst die Dokumentation lesen und herausfinden muss, welcher Parameter nun wie verwendet wird, ruft man als Benutzer lieber gleich &quot;cross_product&quot; auf, sodass auch jeder auf Anhieb den Code versteht.</p>
<p>Generell sollte man APIs möglichst schlank designen und nicht einfach anbieten, was mal nützlich sein könnte, sondern auf konkrete Featurewünsche reagieren.</p>
<p>Ich habe einen Teil der genannten Funktionen auch mal implementiert (in der Liste nicht auftretende hielt ich nicht für nötig, dafür hatte ich andere nützliche wie Skalarprodukt, Projektionen, Rotationen): square, length, squaredLength, crossProduct.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2407048</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2407048</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 04 Jul 2014 20:20:47 GMT</pubDate></item><item><title><![CDATA[Reply to Benennung von distance&#x2F;squared_distance und weiteren Hilfsfunktionen on Fri, 04 Jul 2014 20:54:51 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Warum &quot;real_norm&quot; und nicht einfach &quot;norm&quot; oder, falls es nicht so mathe-lastig sein muss, &quot;length&quot;?</p>
</blockquote>
<p>Es gibt ja verschiedene Normen, das sollte auch beachtet werden. Deswegen würde ich es nicht einfach &quot;norm&quot; nennen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2407053</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2407053</guid><dc:creator><![CDATA[Thilo87]]></dc:creator><pubDate>Fri, 04 Jul 2014 20:54:51 GMT</pubDate></item><item><title><![CDATA[Reply to Benennung von distance&#x2F;squared_distance und weiteren Hilfsfunktionen on Sat, 05 Jul 2014 08:06:27 GMT]]></title><description><![CDATA[<p>Wenn es so mathematisch sein muss, dann nimmt man aber &quot;euclidean_norm&quot; oder &quot;l2_norm&quot;. &quot;real&quot; ist in jedem Fall der falsche Ausdruck.</p>
<p>Ich habe allerdings so meine Zweifel, dass hier Manhattan- oder p-Norm benötigt werden. Daher würde ich eher nicht &quot;norm&quot; verwenden (und wenn, dann ohne spezifische Bezeichnung).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2407073</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2407073</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sat, 05 Jul 2014 08:06:27 GMT</pubDate></item></channel></rss>