Inverse square root is a common operation in vector normalization, something that happens a lot in 3D math, particularly in game engines. An incredibly clever algorithm was developed using so-called ‘magic numbers’ and implemented in C, making its production debut in Quake.

Essentially, the algorithm makes a very smart guess as to an initial starting point that can be used to drive a single iteration of Newton’s method for 1/sqrt(x). You can read more about it here,

http://betterexplained.com/articles/understanding-quakes-fast-inverse-square-root/

http://www.geometrictools.com/Documentation/FastInverseSqrt.pdf

http://www.lomont.org/Math/Papers/2003/InvSqrt.pdf

http://www.beyond3d.com/content/articles/8/

Some time ago, I gave this approach a try using ByteArray and was disappointed with the performance, although it was a fun exercise. Recently, Nicolas Cannasse implemented the algorithm with haXe optimizations and the performance is awesome. Great work Nicolas!

### Like this:

Like Loading...

*Related*