世界上有哪些代码量很少,但很牛很经典的算法或项目案例?

开方运算居然没用迭代,速度是编译器自带的sqrt的四倍,一切源于一个不知从哪里来的常数0x5f3759df,注意后来者写的what the fuck

float Q_rsqrt( float 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

#ifndef Q3_VM

#ifdef __linux__

assert( !isnan(y) ); // bk010122 - FPE?

#endif

#endif

return y;

}

(0)

相关推荐