[FoRK] Fast inverse square root

Gregory Alan Bolcer greg at bolcer.org
Wed Dec 23 21:45:33 PST 2015


1994. Light pipes : a new method for global illumination / by James 
Image processing -- Digital techniques. Berney, James Patrick.

On 12/23/2015 5:13 PM, Stephen D. Williams wrote:
> Interesting history of a great hack.
>
> https://en.wikipedia.org/wiki/Fast_inverse_square_root
>
> 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;
> }
>
>
>
> sdw
>
> _______________________________________________
> FoRK mailing list
> http://xent.com/mailman/listinfo/fork
> .
>

-- 
greg at bolcer.org, http://bolcer.org, c: +1.714.928.5476


More information about the FoRK mailing list