Ich habe gerade gelesen, dass C99 double_t hat, die mindestens so breit wie das Doppelte sein sollte. Bedeutet dies, dass es mehr Genauigkeitsziffern nach der Dezimalstelle gibt? Mehr als die üblichen 15 Ziffern für das Doppelte ?.double_t in C99
Zweitens, wie man es benutzt:
#include <float.h>
genug nur inklusive? Ich habe gelesen, dass man den FLT_EVAL_METHOD auf 2 für Long double setzen muss. Wie macht man das? Da ich mit numerischen Methoden arbeite, möchte ich maximale Präzision, ohne eine beliebige Präzisions-Bibliothek zu verwenden.
Vielen Dank ...
Danke. Ist lang doppelt breiter als double_t? Das verwirrt mich. – yCalleecharan
@yCleleecharan: Auf einigen Plattformen, ja, auf einigen Plattformen, nein. Unter OSX/Intel sind 'double' und' double_t' zum Beispiel IEEE-754 double, während 'long double' der x87 double-extended-Typ ist, der eine höhere Genauigkeit aufweist. Auf einer Plattform, auf der die Fließkomma-Arithmetik standardmäßig an die x87-Einheit gebunden ist (Windows, vielleicht?), Kann "double_t" mit "long double" identisch sein. Es ist unwahrscheinlich, dass "double_t" * breiter * als "long double" ist (wenn auch nicht unmöglich, IIRC). –
In Bezug auf die numerischen Methoden, die ich verwende, sind es nur einfache Runge Kutta-Methoden 4. Ordnung zur Integration einer Reihe von ODEs. Ich musste meine Gleichungen nichtdimensionalisieren, um "schöne" Werte zu erhalten, da die Gleichungen nichtlinear sind und Nichtlinearität zu Chaosphänomenen führen kann. Ich benutze nichtlineare Werkzeuge wie ein Bifurkationsdiagramm und eine Poincare-Map. Da die Lösungen der ODEs empfindlich sind, versuche ich mit der bestmöglichen Präzision zu arbeiten. – yCalleecharan