Q_rsqrt

by atalaykutlay

The legendary fast inverse square root implementation from Quake III Arena source code with the original comment text.

Q_rsqrt
1float Q_rsqrt( float number )
2{
3	long i;
4	float x2, y;
5	const float threehalfs = 1.5F;
6
7	x2 = number * 0.5F;
8	y  = number;
9	i  = * ( long * ) &y;                       // evil floating point bit level hacking
10	i  = 0x5f3759df - ( i >> 1 );               // what the fuck? 
11	y  = * ( float * ) &i;
12	y  = y * ( threehalfs - ( x2 * y * y ) );   // 1st iteration
13//	y  = y * ( threehalfs - ( x2 * y * y ) );   // 2nd iteration, this can be removed
14
15	return y;
16}

Share

Share
Video
A cool 10 sec video.
Share
Detailed
Title, description, and syntax highlighted code.
Share
Simple
Syntax highlighted code with gradient background colored presentation.

Comments

It looks like there is no comment for this snippet. Leave the first one!
You need to login to send a comment.

Similar Snippets

Fast Inverse Square Root
Fast Inverse Square Root

The legendary fast inverse square root implementation from Quake III Arena source code with the original comment text.

Language: cpp19 months ago
Count Ways To Build Good Strings
Count Ways To Build Good Strings

Solution to Leetcode problem Count Ways To Build Good Strings in C++

Language: cpp19 months ago