20 November 2010

Bit Hacks are Awesome

What does this code do?

float super_mario_bros(float number)
{
   long i;
   float x2, y;
   const float threehalfs = 1.5F;
 
   x2 = number * 0.5F;
   y  = number;
   i  = * ( long * ) &y;                       
   i  = 0x5f3759df - ( i >> 1 );               
   y  = * ( float * ) &i;
   y  = y * ( threehalfs - ( x2 * y * y ) );   
// y  = y * ( threehalfs - ( x2 * y * y ) );   
 
   return y;
}

No comments:

Post a Comment