Ich arbeite an einer neuen Version meiner Mandelbrot screensaver und mir geht die Fließkommagenauigkeit aus - einfache double Werte haben nicht genug signifikante Zahlen für meine Bedürfnisse.Jedes Äquivalent von "erweitert" für C#?
Bedeutsamer Zahlen = höheres Maß an Zoomen in die fraktale
Damals, als ich eine Version dieses Bildschirmschoner in Delphi 7, schrieb verwendete ich den extended Gleitkommatyps, 80 Bit groß.
In .NET könnte ich zu decimal wechseln, aber die Leistung für diesen Hit ist schrecklich, Verlangsamung Fraktale Generation um einen Faktor von 20 oder so.
Gibt es ein Äquivalent von erweitert für .NET? Oder gibt es alternativ numerische Typen mit höherer Genauigkeit als double, die immer noch die FPU für die Auswertung verwenden und daher nicht den hohen Leistungshit von dezimal haben?
aktualisieren
My Screensaver verwaltet bereits von vielen (viele!) Größenordnungen in die fraktale zu vergrößern; Zur Zeit wird es nur dann auf das Basisfraktal zurückgesetzt, wenn der verwendete numerische Typ die Ordinaten für benachbarte Pixel nicht trennen kann. Die zusätzlichen 16 Bits Präzision von der doppelt erweiterten Verbesserung würden mir fast 16 weitere Verdopplungen der Größe geben.
In Bezug auf die Leistung, schafft es mein Algorithmus bereits, 95-99% der benötigten Mathematik zu eliminieren (im Vergleich zu einer naiven Implementierung, die viele Pixel berechnet), während die Integrität des Fraktals erhalten bleibt.
Wahrscheinlich müssen Sie dafür systemeigenen Code schreiben, da das Extended das 80-Bit-Gleitkommaregister in x86 verwendet. Oder ich bin mir nicht sicher, ob es möglich ist, den Hunger des Programms nach mehr Präzision zu reduzieren. Ich bin dafür kein Experte, daher kann ich keine weiteren Ratschläge geben. – nhahtdh