我有个历程里的算法看不懂

2019-10-14 21:36发布

/**************************实现函数********************************************
*函数原型:           float invSqrt(float x)
*功  能:           快速计算 1/Sqrt(x)        
输入参数: 要计算的值
输出参数: 结果
*******************************************************************************/
float invSqrt(float x) {
        float halfx = 0.5f * x;
        float y = x;
        long i = *(long*)&y;
        i = 0x5f3759df - (i>>1);
        y = *(float*)&i;
        y = y * (1.5f - (halfx * y * y));
        return y;
}

这些都在干嘛,好心人求帮助

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
augustedward
1楼-- · 2019-10-14 23:44
这个算法是个快速开方算法,算完后取倒数了。这个算法是有一个国外的大牛用来做图像处理时弄出来的,算是个近似值,差别不大,能够快速提高图像处理速度。
lycreturn
2楼-- · 2019-10-15 05:15
 精彩回答 2  元偷偷看……

一周热门 更多>