上一篇:WordPress Theme: Simple Web 2.0 Orange 发布 - 下一篇:用ssh隧道做加密代理
2006-12
05
版权声明:可以任意转载,但转载时必须标明原作者charlee、原始链接http://tech.idv2.com/2006/12/05/fast-sqrt/以及本声明。
今天在solidot上看到了这个极其巧妙的算法,能够计算平方根倒数,即1/sqrt(x),据称是Quake 3中的代码。简单测试了一下,速度要比math.h提供的sqrt函数快上一倍左右。
float InvSqrt(float x){
float xhalf=0.5f*x;
long i=*(long*)&x;
i=0x5f3759df - (i>>1);
x=*(float *)&i;
x=x*(1.5f-xhalf*x*x);
return x;
}
看完后觉得十分巧妙,于是开始读Chris Lomont于2003年撰写的一篇分析论文, 看到一半的时候发现fcicq比我捷足先登, 并给出了一个中文版的算法分析页面。 该网页的作者自称看完GameDev.net的算法后觉得自己火星了,看来我还真是从冥王星来的,哈雷彗星也未可知。
添加评论
上一篇:WordPress Theme: Simple Web 2.0 Orange 发布 - 下一篇:用ssh隧道做加密代理
