Hacker News new | ask | show | jobs
by shaftway 3374 days ago
I've always been a fan of the Fast Inverse Square Root hack.

  float Q_rsqrt( float number )
  {
    long i;
    float x2, y;
    const float threehalfs = 1.5F;
  
    x2 = number * 0.5F;
    y  = number;
    i  = * ( long * ) &y;                       // evil floating point bit level hacking
    i  = 0x5f3759df - ( i >> 1 );               // what the fuck? 
    y  = * ( float * ) &i;
    y  = y * ( threehalfs - ( x2 * y * y ) );   // 1st iteration
    // y  = y * ( threehalfs - ( x2 * y * y ) );   // 2nd iteration, this can be removed
  
    return y;
  }
https://en.wikipedia.org/wiki/Fast_inverse_square_root