IT-lexicon › Programmeren › Snelle inverse vierkantswortel

Snelle inverse vierkantswortel

Programmeren Svenska → Bijgewerkt: 2026-10-26

De bithack die 1/√x benadert door een float als geheel getal te lezen, van een magische constante af te trekken en het resultaat met één Newton-stap bij te schaven.

Games normaliseren voortdurend vectoren, voor belichting, reflecties en natuurkunde, en elke normalisatie vraagt om 1/√x. Op de cpu's van de jaren negentig waren zowel delen als worteltrekken traag. Q_rsqrt in Quake III Arena (1999) herinterpreteert de bits van een IEEE 754-float als geheel getal, waarin een verschuiving naar rechts de exponent ruwweg halveert. Trek je dat af van 0x5F3759DF, dan ontstaat een grove schatting, en één Newton-Raphson-iteratie drukt de fout onder de één procent.

Bekend werd het pas toen id Software in 2005 de broncode vrijgaf, inclusief de inmiddels iconische opmerking // what the fuck?. De herkomst werd later via 3dfx herleid tot Greg Walsh bij Ardent Computer. Datzelfde jaar waarin de game uitkwam, kreeg x86 met SSE de instructie rsqrtss, dus tegenwoordig is de truc vooral een museumstuk.

← Terug naar het lexicon