Bounded Floating Point: Patent grenzt Genauigkeitsfehler bei Fließkommazahlen ein
Ob die Konstante Pi oder das Quadrat von 0,1: Fließkommazahlen bringen Ungenauigkeiten mit sich. Im Militäreinsatz hat es dadurch auch schon Tote gegeben. Ein Patent für Bounded Floating Point soll diesen Fehler einschränken. Das Prinzip ist dabei schon länger bekannt.

Der Wissenschaftler Alan Jorgensen hat ein Patent für die Methode des Bounded Floating Point eingereicht. In einer Pressemitteilung stellt er die Technik vor, die den Genauigkeitsfehler bei Fließkommazahlen minimieren soll. In den meisten Programmiersprachen werden Datentypen wie Float und Double zur Repräsentation reeller Zahlen mit Kommastellen verwendet.
Allerdings ist die binäre Darstellung mit Mantisse und Exponent in vielen Situationen ungenau und einigen Situationen sogar kritisch. 1991 etwa verfehlte in Saudi-Arabien eine ballistische Rakete vom Typ Patriot eine feindliche Scud-Rakete. Dadurch starben 28 US-Soldaten. Den Fehler führen viele Forscher auf den Genauigkeitsfehler von Fließkommazahlen zurück, die in der Zielautomatik der Patriot-Rakete zum Berechnen der Zieldaten verwendet werden. Auch in anderen Situationen, etwa der Raumfahrt, sind sehr exakte Berechnungen wichtig.
Eingrenzen auf Plus-Minus-Eins an der letzten Kommastelle
Die Ungenauigkeit von Fließkommazahlen vergrößert sich mit längeren Algorithmen, die eine leicht ungenaue Zahl mehrfach in mathematischen Gleichungen verwenden. Auch wichtige Zahlen wie etwa Pi sind selbst mit doppelter Genauigkeit nur Rundungen. Bounded Floating Point soll diesen Genauigkeitsfehler auf Plus-Minus-Eins an der letzten Kommastelle eingrenzen.
Dazu führt das Format zwei Felder zwischen dem 8-Bit-Exponenten und der 23-Bit-Mantisse bei einfacher beziehungsweise dem 11-Bit-Exponenten und der 52-Bit-Mantisse bei doppelter Genauigkeit ein, die den Wert eingrenzen. Das D-Feld speichert Informationen über Bits des Datentyps, die nicht mehr berücksichtigt werden müssen. Das N-Feld teilt sich in R und C, wobei Ersteres die Rundungsbits beinhaltet und C die Rundungsfehler zählt. Wenn C größer als D wird, setzt es sich auf 0 zurück. Eine anschauliche Beschreibung hat die Webseite Boundedfloatingpoint.com veröffentlicht. Allerdings ist nicht ganz klar, wie viele Bits Datentypen wie Float und Double insgesamt hinzugefügt werden.
Das US-Patent 9.816.662 B2 wurde von Jorgensen im November 2017 eingereicht. Allerdings ist die Pressemitteilung erst Anfang 2018 veröffentlicht worden. Die Idee von Bounded Floating Point ist zudem nicht neu. Das Patent könnte dessen Standardisierung vereinfachen und beschleunigen.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
Frage deiner Spezifikation wie genau deine Berechnungen sein müssen allein bei assertions...
Das ist ein Fehler ausgelöst durch die Genauigkeit. Das ist wie ein Rundungsfehler, was...
Wusstest Du denn nicht, dass das alles lediglich dazu dient, Leben zu retten?
Das Patent bezieht sich auf ein konkrete Implementierung mit einem bestimmten Speicher...