diff --git a/include/tr/math.h b/include/tr/math.h index b1cf73d..8e65992 100644 --- a/include/tr/math.h +++ b/include/tr/math.h @@ -29,30 +29,8 @@ #include "tr/commons.h" -inline -long -TR_euklidGcd(register long val1, register long val2) -{ - register long mod; - - if(val2 > val1) SWAP_XOR(val1, val2); - - mod = val1 % val2; - while (mod != 0) { - val1 = val2; - val2 = mod; - mod = val1 % val2; - } - - return val2; -} - -inline -long -TR_lcm(register long val1, register long val2) -{ - return val1 * val2 / TR_euklidGcd(val1, val2); -} +long TR_euklidGcd(register long, register long); +long TR_lcm(register long, register long); #endif // __TR_MATH_H__ diff --git a/src/math.c b/src/math.c index 58841ae..151e2db 100644 --- a/src/math.c +++ b/src/math.c @@ -26,5 +26,27 @@ #include "tr/math.h" -extern inline long TR_euklidGcd(register long, register long); -extern inline long TR_lcm(register long, register long); +long +TR_euklidGcd(register long val1, register long val2) +{ + register long mod; + + if(val2 > val1) SWAP_XOR(val1, val2); + + mod = val1 % val2; + while (mod != 0) { + val1 = val2; + val2 = mod; + mod = val1 % val2; + } + + return val2; +} + +long +TR_lcm(register long val1, register long val2) +{ + return val1 * val2 / TR_euklidGcd(val1, val2); +} + +// vim: set ts=4 sw=4: