2Summe - 2Sum

2Sum ist ein Gleitkomma- Algorithmus zum Berechnen des exakten Rundungsfehlers in einer Gleitkomma-Additionsoperation.

2Sum und seine Variante Fast2Sum wurden erstmals 1965 von Møller veröffentlicht. Fast2Sum wird oft implizit in anderen Algorithmen wie kompensierten Summationsalgorithmen verwendet ; Kahans Summationsalgorithmus wurde zuerst 1965 veröffentlicht und Fast2Sum wurde später von Dekker 1971 für Doppel-Doppel-Arithmetik- Algorithmen herausgerechnet. Die Namen 2Sum und Fast2Sum scheinen 1997 von Shewchuk rückwirkend angewendet worden zu sein.

Algorithmus

Bei zwei Gleitkommazahlen und berechnet 2Sum die Gleitkommasumme und den Gleitkommafehler, sodass . Der Fehler ist selbst eine Gleitkommazahl.

Gibt Gleitkommazahlen ein
Gibt Summe und Fehler aus
  1. Rückkehr

Vorausgesetzt, dass die Gleitkomma-Arithmetik korrekt auf den nächsten Wert gerundet ist (mit beliebig aufgelösten Verbindungen), wie dies der Standard in IEEE 754 ist , und vorausgesetzt, dass die Summe nicht überläuft und, wenn sie unterschreitet, allmählich unterläuft , kann nachgewiesen werden, dass .

Eine Variante von 2Sum namens Fast2Sum verwendet nur drei Gleitkomma-Operationen für Gleitkomma-Arithmetik in Radix 2 oder Radix 3, unter der Annahme, dass der Exponent von mindestens so groß ist wie der Exponent von , z. B. wenn :

Eingabe von Radix-2- oder Radix-3-Gleitkommazahlen und , von denen mindestens eine Null ist oder die jeweils normierte Exponenten haben
Gibt Summe und Fehler aus
  1. Rückkehr

Selbst wenn die Bedingungen nicht erfüllt sind, liefern 2Sum und Fast2Sum oft vernünftige Näherungen für den Fehler, so dass Algorithmen für kompensierte Summation, Punktprodukt usw ist ungewöhnlich. Kompliziertere Varianten von 2Sum und Fast2Sum gibt es auch für andere Rundungsmodi als Runden auf Nächstes.

Siehe auch

Verweise