// 计算参数x的平方根的倒数
//+ a7 H2 y4 T7 B1 g- k8 T0 w
float InvSqrt (float x), T2 b9 K8 D) A& D1 P/ _2 {! ]
{/ D3 y/ ]) I# l
float xhalf = 0.5f*x;
int i = *(int*)&x;5 b3 q" T% O M: A9 W' E, J
i = 0x5f3759df - (i >> 1); // 计算第一个近似根! x/ G$ w ?6 W+ |* l
x = *(float*)&i;
x = x*(1.5f - xhalf*x*x); // 牛顿迭代法
return x;
}
| 欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) | Powered by Discuz! X2.5 |