求平方根倒数的算法

下面这个求1/\sqrt{x}的函数号称比直接调用sqrt库函数快4倍,来自游戏Quake III的源代码。

float InvSqrt (float x){
    float xhalf = 0.5f*x;
    int i = *(int*)&x;
    i = 0x5f3759df - (i>>1);
    y = *(float*)&i;
    y = y*(1.5f - xhalf*y*y);
    return x;
}

我们这里分析一下它的原理(指程序的正确性,而不是解释为何快)。

本日志由 胡子 于 2008-09-23 17:43:08 发表到 工作随笔 中,目前已经被浏览 1640 次,评论 0 次;

作者添加了以下标签: 求平方根倒数算法

首页只显示了部分日志内容,要查看日志的全部内容请阅读全文