雷神之锤里求方根倒数的算法原理是什么?
rt,雷神之锤中相关代码是:
float InvSqrt (float x)
{
float xhalf = 0.5f*x;
int i = *(int*)&x;
i = 0x5f3759df - (i >> 1); // 我只知道5f是什么意思,后面的呢?
x = *(float*)&i;
x = x*(1.5f - xhalf*x*x); // 这是普通的迭代
return x;
}
求问0x5f3759df是怎么得到的,我网上搜了下好像没有结论。
还有要是对double的数进行运算,这个常数该是什么呢?