Fast Inverse Square Root — A Quake III Algorithm

Nemean · 6M views · 2020 · 20:08

Open on YouTube

Algorithms & data structuresSoftware performance & optimizationGame history & retro gamingexplainer

Why Hacker News recommends it

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

What it is

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.

Recommended by 3 HN commenters across 3 different months, 2021 to 2022.

What Hacker News said

Strong rec greyfox · 2021-07 · on “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: [this video]

Recommends colejohnson66 · 2021-08 · on “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]: [this video] (~20 minutes)

Recommends infogulch · 2021-09 · on “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: [this video]

Cites bitwidget · 2022-08 · on “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. [this video]