来源于 著名游戏《雷神之锤III》,它的代码在2002年左右被披露,发现了一段用于快速计算平方根倒数的代码
float InvSqrt (float x)
{
float xhalf = 0.5f*x;
int i = *(int*)&x; // get bits for floating value
i = 0x5f3759df - (i >> 1);// L1:gives initial guess y0
x = *(float*)&i; //l2:convert bits back to float
x = x*(1.5f - xhalf*x*x); //l3:Newton step, repeating increases accuracy
return x;
}
经测试,比一般的
一般的代码