Die Verwendung von Festkomma-Arithmetik kann unter bestimmten Umständen angebracht sein. Im Allgemeinen ist es für wissenschaftliches Rechnen (zumindest in dem Sinne, wie die meisten Leute es denken) nicht geeignet, da die großen Dynamikbereiche ausgedrückt werden müssen. Sie erwähnen als Beispiel Eigenwertprobleme, aber in der Wissenschaft interessiert man sich sehr oft für die kleinsten Eigenwerte einer Matrix (z. B. für die Berechnung des Grundzustands eines Quantensystems). Die Genauigkeit kleiner Eigenwerte wird im Allgemeinen im Vergleich zu großen Eigenwerten ziemlich verschlechtert, wenn Sie einen festen Punkt verwenden. Wenn Ihre Matrix Einträge enthält, die durch große Verhältnisse variieren, können die kleinen Eigenwerte in der Arbeitsgenauigkeit möglicherweise nicht ausgedrückt werden. Dies ist ein Problem bei der Darstellung von Zahlen; Diese Argumente gelten unabhängig davon, wie Sie die Zwischenberechnungen durchführen. Sie könnten möglicherweise eine Skalierung ausarbeiten, um sie auf die berechneten Ergebnisse anzuwenden, aber jetzt haben Sie gerade den Gleitkomma erfunden. Es ist leicht, Matrizen zu konstruieren, deren Elemente sich gut verhalten, deren Eigenwerte sich jedoch außerordentlich schlecht verhalten (wie zWilkinson-Matrizen oder sogar Matrizen mit vollständig ganzzahligen Einträgen ). Diese Beispiele sind nicht so pathologisch, wie es scheinen mag, und viele Probleme auf dem neuesten Stand der Wissenschaft betreffen Matrizen mit sehr schlechtem Verhalten. Daher ist die Verwendung von Fixpunkten in diesem Zusammenhang eine schlechte Idee (TM).
Sie könnten argumentieren, dass Sie die Größe der Ergebnisse kennen und keine Bits für den Exponenten verschwenden möchten. Lassen Sie uns also über die Zwischenprodukte sprechen. Die Verwendung von Festkomma verschärft im Allgemeinen die Auswirkungen von katastrophalen Stornierungen und Abrundungen, es sei denn, Sie haben wirklich große Mühe, präziser zu arbeiten. Der Leistungsverlust wäre enorm, und ich würde vermuten, dass die Verwendung einer Gleitkommadarstellung mit derselben Mantissenbitbreite schneller und genauer wäre.
Ein Bereich, in dem Fixpunkte leuchten können, sind bestimmte Bereiche des geometrischen Rechnens. Insbesondere wenn Sie eine genaue Arithmetik benötigen oder den Dynamikbereich aller Zahlen im Voraus kennen, können Sie mit dem Festkomma alle Bits in Ihrer Darstellung nutzen. Angenommen, Sie möchten den Schnittpunkt zweier Linien berechnen, und die Endpunkte der beiden Linien werden so normalisiert, dass sie im Einheitsquadrat liegen. In diesem Fall kann der Schnittpunkt mit größerer Genauigkeit dargestellt werden als unter Verwendung einer äquivalenten Gleitkommazahl (wodurch Bits auf dem Exponenten verschwendet werden). Nun ist es mit ziemlicher Sicherheit so, dass die für diese Berechnung erforderlichen Zwischenzahlen mit höherer Genauigkeit berechnet oder zumindest sehr sorgfältig durchgeführt werden müssen (Wenn Sie das Produkt aus zwei Zahlen durch eine andere Zahl teilen, müssen Sie sehr vorsichtig sein . In dieser Hinsicht ist der Festpunkt eher vom Standpunkt der Darstellung als vom Standpunkt der Berechnung aus vorteilhaft, und ich würde sogar sagen, dass dies im Allgemeinen der Fall ist, wenn Sie bestimmte Ober- und Untergrenzen für den Dynamikbereich Ihrer Algorithmusausgaben festlegen können . Das kommt selten vor.
Früher dachte ich, dass Gleitkomma-Darstellungen grob oder ungenau sind (warum Bits auf einem Exponenten verschwenden?!). Aber im Laufe der Zeit wurde mir klar, dass es wirklich eine der bestmöglichen Darstellungen für reelle Zahlen ist. Dinge in der Natur werden auf Protokollskalen angezeigt, sodass reale Daten einen großen Bereich von Exponenten umfassen. Um die höchstmögliche relative Genauigkeit zu erreichen, müssen Sie auch an Protokollskalen arbeiten, um die Verfolgung eines Exponenten natürlicher zu gestalten. Der einzige andere Anwärter auf eine "natürliche" Darstellung ist der symmetrische Pegelindex . Addition und Subtraktion sind in dieser Darstellung jedoch viel langsamer, und es fehlt die Hardware-Unterstützung von IEEE 754. Den Gleitkomma-Standards wurde eine enorme Menge an Gedanken gewidmetdurch eine Säule der numerischen linearen Algebra. Ich würde denken, er weiß, was die "richtige" Darstellung von Zahlen ist.