blob: f6f5ca6a8f923e0bf3c92c0bfbe3f18dba074b95 [file] [log] [blame]
unsigned int isqrt( unsigned long val ) {
unsigned long temp, g = 0, b = 0x8000, bshft = 15;
do {
if (val >= (temp = (((g << 1) + b) << bshft--))) {
g += b;
val -= temp;
}
} while (b >>= 1);
return g;
}