Version:  2.6.24 2.6.25 2.6.26 2.6.27 2.6.28

Architecture:  x86 m68k m68knommu mips powerpc sh blackfin

Linux/lib/int_sqrt.c

  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