// 计算参数x的平方根的倒数( {/ x4 b; I O6 K& @% Y+ c6 n9 a
//
float InvSqrt (float x)0 e8 H# ^7 V2 |) X/ P% B5 H1 C, d
{
float xhalf = 0.5f*x;
int i = *(int*)&x;4 G, ?+ m. i$ b6 A/ X3 a
i = 0x5f3759df - (i >> 1); // 计算第一个近似根/ q8 ?$ k( l$ n, \/ ]/ A( c( t
x = *(float*)&i;3 F+ B Z Q5 y' f7 l3 t+ _" C) R; K
x = x*(1.5f - xhalf*x*x); // 牛顿迭代法
return x;" U: b" ? @' T, O( n C
}
| 欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) | Powered by Discuz! X2.5 |