一个快速开方的函数

一个快速开方的函数

 

/**/ /* 来至 Quake 3 的源码 */
float  CarmSqrt( float  x) {
    union
    
{
        
int intPart;
        
float floatPart;
    }
 convertor;
    union
    
{
        
int intPart;
        
float floatPart;
    }
 convertor2;
    convertor.floatPart 
= x;
    convertor2.floatPart 
= x;
    convertor.intPart 
= 0x1FBCF800 + (convertor.intPart >> 1);
    convertor2.intPart 
= 0x5f3759df - (convertor2.intPart >> 1);
    
return 0.5f*(convertor.floatPart + (x * convertor2.floatPart));
}

你可能感兴趣的:(一个快速开方的函数)