|
FAST INVERSE SQUARE ROOT
看到这个名字有没有什么想法
这个可是号称世界上最快的浮点开方算法哦,怎么做到的?0x5f3759df就是它
原算法好像是在雷神之锤里面实现的。
大家看看吧
- #include <math.h>
- float InvSqrt(float x)
- {
- float xhalf = 0.5f*x;
- int i = *(int*)&x; // get bits for floating VALUE
- i = 0x5f375a86- (i>>1); // gives initial guess y0
- x = *(float*)&i; // convert bits BACK to float
- x = x*(1.5f-xhalf*x*x); // Newton step, repeating increases accuracy
- return x;
- }
- int main()
- {
- printf("%lf",1/InvSqrt(3));
- return 0;
- }
复制代码 在附上论文
Fast_Inverse_Square_Root.pdf
(195.54 KB, 下载次数: 36)
|
|