Release 4.15 lib/int_sqrt.c
// SPDX-License-Identifier: GPL-2.0
/*
* Copyright (C) 2013 Davidlohr Bueso <davidlohr.bueso@hp.com>
*
* Based on the shift-and-subtract algorithm for computing integer
* square root from Guy L. Steele.
*/
#include <linux/kernel.h>
#include <linux/export.h>
#include <linux/bitops.h>
/**
* int_sqrt - computes the integer square root
* @x: integer of which to calculate the sqrt
*
* Computes: floor(sqrt(x))
*/
unsigned long int_sqrt(unsigned long x)
{
unsigned long b, m, y = 0;
if (x <= 1)
return x;
m = 1UL << (__fls(x) & ~1UL);
while (m != 0) {
b = y + m;
y >>= 1;
if (x >= b) {
x -= b;
y += m;
}
m >>= 2;
}
return y;
}
Contributors
Person | Tokens | Prop | Commits | CommitProp |
Davidlohr Bueso A | 35 | 41.67% | 1 | 20.00% |
Andrew Morton | 35 | 41.67% | 1 | 20.00% |
Peter Zijlstra | 12 | 14.29% | 2 | 40.00% |
Peter Williams | 2 | 2.38% | 1 | 20.00% |
Total | 84 | 100.00% | 5 | 100.00% |
EXPORT_SYMBOL(int_sqrt);
Overall Contributors
Person | Tokens | Prop | Commits | CommitProp |
Andrew Morton | 45 | 44.55% | 1 | 12.50% |
Davidlohr Bueso A | 36 | 35.64% | 1 | 12.50% |
Peter Zijlstra | 16 | 15.84% | 3 | 37.50% |
Peter Williams | 2 | 1.98% | 1 | 12.50% |
Paul Gortmaker | 1 | 0.99% | 1 | 12.50% |
Greg Kroah-Hartman | 1 | 0.99% | 1 | 12.50% |
Total | 101 | 100.00% | 8 | 100.00% |
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.