zoukankan      html  css  js  c++  java
  • 《平方根倒数速算》

    《雷神之锤3》中有个快速的求平方根倒数的方法:

    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(对浮点数的邪恶位元hack)
        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;
    }

    具体参考wiki:https://zh.wikipedia.org/wiki/%E5%B9%B3%E6%96%B9%E6%A0%B9%E5%80%92%E6%95%B0%E9%80%9F%E7%AE%97%E6%B3%95

  • 相关阅读:
    7、猜年龄
    6、continue语句
    5、break语句
    4、while循环练习
    poj 2378
    poj 2342
    poj 2287
    poj 2228
    poj 1191
    srm 578 dv2 1000pt
  • 原文地址:https://www.cnblogs.com/DeanWang/p/7003355.html
Copyright © 2011-2022 走看看