Fast Inverse Square Root — A Quake III Algorithm

Nemean3 HN recommenders · 2021–2022
6M views · explainer · evergreen · Uploaded 2020-11-28

A walkthrough of the Quake III fast inverse square root, explaining where the constant 0x5f3759df comes from. It covers IEEE 754 floats, the bit hack that approximates a logarithm, and a Newton's method refinement.

HN recommends it as an approachable explanation that makes the famous algorithm finally make sense.

Watch on YouTube

4 comments from Hacker News

@greyfox2021 · in “Copilot regurgitating Quake code, including sweary comments”

Very interesting that this was posted as I literally JUST watched an even MORE interesting youtube upload about this very bit of code just last weekend. Here's the very fun video if anyone wants to take a look: [VIDEO]

Strongly recommendsView on HN
@colejohnson662021 · in “One does not simply calculate the absolute value”

> The bits of a float as an integer literal are proportional to its log2 value (plus a constant), … I watched a video[0] a while back about that. Once that coincidence(?) was explained, Q_rsqrt finally made sense. [0]: [VIDEO] (~20 minutes)

RecommendsView on HN
@infogulch2021 · in “Bit Patterns of Float”

Apparently the bit pattern of a float interpreted as an int is sorta-kinda it's own logarithm, which is why the famous fast inverse square root from quake 3 works: log(x^-½) = -½log(x) =~ -log(x) >> 1. This video is approachable and explains it pretty well: [VIDEO]

RecommendsView on HN
@bitwidget2022 · in “Ask HN: What's a small example of some of the best code ever written?”

print("Hello World") /s But I've heard good things about the Fast Inverse Square Root Calculation algorithm in the Doom 3 source code. [VIDEO]