关键字:sqrt、源码、神奇、invsqrt
时间:2018年12月
源码极为高效,背后还有一个传奇的故事,如需了解请搜索关键字“John Carmack”、“invsqrt”。

float InvSqrt (float x){
    float xhalf = 0.5f*x;
    int i = *(int*)&x;
    i = 0x5f3759df - (i>>1);
    x = *(float*)&i;
    x = x*(1.5f - xhalf*x*x);
    return x;
}

float Sqrt(float x) {
    return 1/InvSqrt(x);
}