Files
Linux/lib/gcd.c
T
Florian Fainelli d282922461 lib: add lib/gcd.c
This patch adds lib/gcd.c which contains a greatest common divider
implementation taken from sound/core/pcm_timer.c

Several usages of this new library function will be sent to subsystem
maintainers.

[[email protected]: use swap() (pointed out by Joe)]
[[email protected]: just add gcd.o to obj-y, remove Kconfig changes]
Signed-off-by: Florian Fainelli <[email protected]>
Cc: Sergei Shtylyov <[email protected]>
Cc: Takashi Iwai <[email protected]>
Cc: Simon Horman <[email protected]>
Cc: Julius Volz <[email protected]>
Cc: David S. Miller <[email protected]>
Cc: Patrick McHardy <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2009-06-18 13:04:05 -07:00

19 lines
291 B
C

#include <linux/kernel.h>
#include <linux/gcd.h>
#include <linux/module.h>
/* Greatest common divisor */
unsigned long gcd(unsigned long a, unsigned long b)
{
unsigned long r;
if (a < b)
swap(a, b);
while ((r = a % b) != 0) {
a = b;
b = r;
}
return b;
}
EXPORT_SYMBOL_GPL(gcd);