مجذور معکوس سریع
From Wikipedia, the free encyclopedia
مجذور معکوس سریع که با Fast InvSqrt یا ثابت 0x5F3759DF در دستگاه اعداد پایه ۱۶ نیز شناخته میشود الگوریتمی است که وارون ضربی ریشه دوم یک عدد را در IEEE 754 floating-point format محاسبه میکند.
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;
}