4,951
edits
Falterfire (talk | contribs) (Added custom sort function) |
Falterfire (talk | contribs) (Added a fraction function) |
||
(One intermediate revision by the same user not shown) | |||
Line 268: | Line 268: | ||
for k, v in pairs(obj) do res[p.clone(k)] = p.clone(v) end | for k, v in pairs(obj) do res[p.clone(k)] = p.clone(v) end | ||
return res | return res | ||
end | |||
-- Euclid's Greatest Common Divisor algorithm | |||
function p.gcd(a, b) | |||
if(a == b) then | |||
return a | |||
else | |||
if(a > b) then | |||
if b == 0 then | |||
return a | |||
else | |||
return p.gcd(a - b, b) | |||
end | |||
else | |||
if a == 0 then | |||
return b | |||
else | |||
return p.gcd(a, b - a) | |||
end | |||
end | |||
end | |||
end | |||
--Formats a pair of numbers as a reduced fraction | |||
function p.fraction(n, d) | |||
local gcd = p.gcd(n, d) | |||
return p.formatnum(n/gcd)..'/'..p.formatnum(d/gcd) | |||
end | end | ||
return p | return p |