Embedded Freedom
• source navigation • diff markup • identifier search • freetext search •
1 2 #include <linux/kernel.h> 3 #include <linux/module.h> 4 5 /** 6 * int_sqrt - rough approximation to sqrt 7 * @x: integer of which to calculate the sqrt 8 * 9 * A very rough approximation to the sqrt() function. 10 */ 11 unsigned long int_sqrt(unsigned long x) 12 { 13 unsigned long op, res, one; 14 15 op = x; 16 res = 0; 17 18 one = 1UL << (BITS_PER_LONG - 2); 19 while (one > op) 20 one >>= 2; 21 22 while (one != 0) { 23 if (op >= res + one) { 24 op = op - (res + one); 25 res = res + 2 * one; 26 } 27 res /= 2; 28 one /= 4; 29 } 30 return res; 31 } 32 EXPORT_SYMBOL(int_sqrt); 33
This page was automatically generated by LXR 0.3.1. • Linux is a registered trademark of Linus Torvalds