Ganzzahldivision per Fließkomma: trivial und schneller

Moving integer division to floating-point is trivial

Die Hardware-Ganzzahldivision ist langsam, die Fließkommadivision dagegen schnell. Marc B. Reynolds zeigt, dass sich Ganzzahldivision und -modulo für Zahlen, die in 53 bzw. 24 Bits passen, problemlos auf Fließkomma abbilden lassen – mit korrektem Ergebnis im Standard-Rundungsmodus. Der Trick: Da es bei der Division im gleichen Präzisionsformat keine Ties gibt, genügt die Analyse des Restbits. Der Autor beweist, dass das Aufrunden zur nächsten Ganzzahl unmöglich ist, und liefert damit eine einfache Methode, die besonders in SIMD-Kontexten Vorteile bringt.

Meine Behauptung ist: Für zwei Ganzzahlen x und y (vorzeichenbehaftet oder nicht), die in 53/24 Bits für doppelte/einfache Genauigkeit passen und beide in Fließkomma umgewandelt werden, gilt: d = trunc(x/y); m = -fma(d,y,-x);

Mehr von diesem Tag

2026-08-14