float Q_rsqrtfloat number )
{
  long i;
  float x2, y;
  const float threehalfs = 1.5f;
  x2 = number * 0.5f;
  y  = number;
  i  = * ( long * ) &y;  // evil floating point bit level hacking
  i  = 0x5f3759df - ( i >> 1 ); // what the fuck?
  y  = * ( float * ) &i;
  y  = y * ( threehalfs - ( x2 * y * y ) ); // 1st iteration
  // y  = y * ( threehalfs - ( x2 * y * y ) ); // 2nd iteration, this can be removed
  return y;
}
float InSqrt(float x)
{
 float xhalf = 0.5f * x;
 int i = *(int*)&x;
 i = 0x5f3759df - (i>>i);
 x = *(float*)&i;
 x = x*(1.5f-xhalf*x*x);
 return x; 
}
  1. 别再暴力匹配字符串了,高效的KMP才是真的香!

  2. 回溯法、分支限界法两种思想帮你轻松搞定旅行售货员问题(TSP)

  3. 这几道经典例题帮你轻松搞透贪心算法

本文分享自微信公众号 - 数据结构和算法(sjjghsf)。
如有侵权,请联系 [email protected] 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

03-30 17:26