Höhere Präzision als double benötigt
-
Ich dachte long double und double sind das gleiche bei einem 32bit System. Lieg ich da falsch?
Glaube ich auch, hab ich mal in der MSDN gelesen, mein ich.
Ich glaub es gab nur in der 16-bit Version einen UNterschied zwischen long double und double. Jetzt beim 32-bit sind beide gleich.
-
Im Zweifel einfach mal ausprobieren... Der Standard schreibt diesbezüglich nichts vor, ausser sizeof(double) <= sizeof(long double).
-
Das würde auf jeden Fall zu meinen Ergebnissen passen. Die sehen für double und long double gleich aus. Ich habe inzwischen GMP installiert, bin aber nicht sicher, ob bzw. wir ich ein vector<gmp> oder ähnlich machen darf.
-
Was für Berechnungen machst du denn da, bei denen (long) double nicht ausreicht?
-
Eigentlich nicht so was wildes. Ein Least-Square-Fit beliebiger Ordnung, meist aber 3. bis 5.. Der Algorithmus ist soweit in Ordnung, glaube ich, nur die Ergebnisse werden krumm, je größer die Zahlen werden.
-
du kannst alles machen mit vector, also auch vector
vector<gmp>, oder vector<BigNum> oder sonstwas, geht alles :), das is ja das schöne an templates
-
Danke für Eure Hilfe. Ich befürchte nur gerade, dass ich was anderes im Code vermasselt habe und das deswegen die Ergebnisse falsch sind.
-
Verdacht war falsch, Code richtig. Muss also doch an der Präzision liegen.
-
long double ist auf meinem 32bit System 12 Byte, gegenüber den 8 Byte von double. Die numeric_limits geben auch andere Werte heraus. Ist aber auch kein Windows.
-
Auf x86-Maschinen mit den gängigen Compilern hat double 64 Bit und long double 80. Könnte sich aber bald ändern, wenn nur mehr SSE 2/3 verwendet wird. Das kann nämlich kein long double.