卡马克开方膜拜笔记

Code

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

    return y;
}

——Luogu

口胡

运用玄学美妙奇怪诡异神奇无敌优秀乱搞算法得到一个初始估计值,

再牛顿迭代。

迭代次数高了会使时间增长。

猜你喜欢

转载自www.cnblogs.com/ChiTongZ/p/11290513.html