文章
Slash Boxes
评论

源自Quake3的快速求InvSqrt()函数

matrix 发表于 2006年12月04日 10时26分 星期一   Printer-friendly   Email story
来自伟大的Geek部门
matrix 写道 "人们很早就在Quake3源代码中发现了如下的C代码,它可以快速的求1/sqrt(x),在3D图形向量计算方面应用很广。
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;
}
Beyond3D.com的Ryszard Sommefeldt一直在想到底是哪个家伙写了这些神奇的代码?2003年Chris Lomont还写了一篇文章(PDF)对这些代码进行了分析。毫无疑问写出这些代码的人绝对是天才。"
是John Carmack?Michael Abrash?John Carmack在邮件回复中明确表示不是他,也不是Michael,可能是Terje Matheson。于是侦探Ryszard又向Terje Mathisen寻求答案。Terje说他写过类似的高效代码,但上面的不是。他猜测可能在MIT的旧文档中可以找到。Ryszard的求证之路显然无止境。
显示选项 门槛:
声明: 下面的评论属于其发表者所有,不代表本站的观点和立场,我们不负责他们说什么。