高速逆平方根
浮動小数点数のビット列を整数として読み、魔法の定数から引き、ニュートン法を1回かけるだけで1/√xを近似するビットハック。
ゲームではライティングや反射、物理演算のためにベクトルの正規化を絶えず行い、そのたびに1/√xが必要になる。1990年代のCPUでは除算も平方根も遅かった。Quake III Arena(1999年)のQ_rsqrtは、IEEE 754の浮動小数点数のビット列を整数として解釈する。指数部は右シフトするとおおよそ対数が半分になる性質を持つ。これを0x5F3759DFから引くと大まかな推定値が得られ、ニュートン・ラフソン法を1回反復すれば誤差は1%未満に収まる。
広く知られるようになったのは、id Softwareが2005年にソースコードを公開してからで、有名になったコメント// what the fuck?もそのまま残っていた。起源は3dfxを経て、Ardent ComputerのGreg Walshまでたどられている。ゲームの発売と同じ年にx86はSSEでrsqrtss命令を獲得したので、今日ではこの技法はほぼ博物館の展示品である。