// 计算参数x的平方根的倒数
//7 f8 Z3 M2 R J( N1 P2 ]6 f
float InvSqrt (float x)/ L% X) n8 C6 Z( E+ K9 E( F
{
float xhalf = 0.5f*x;
int i = *(int*)&x;7 e4 B+ a9 K r* A/ s
i = 0x5f3759df - (i >> 1); // 计算第一个近似根
x = *(float*)&i;. v; `6 A1 B; p5 m
x = x*(1.5f - xhalf*x*x); // 牛顿迭代法
return x;4 e- Q# l4 A) K
}
| 欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) | Powered by Discuz! X2.5 |