Module:Rational: Difference between revisions

Plumtree (talk | contribs)
m as_subgroup_ket() implemented, as_ket() implementation improved for 1/1
Plumtree (talk | contribs)
m is_harmonic(), is_subharmonic() implemented
Line 438: Line 438:
return false
return false
end
end
end
end
return true
end
-- determine whether a rational number represents a harmonic
function p.is_harmonic(a, reduced)
if type(a) == 'number' then
a = p.new(a)
end
if a.nan or a.inf or a.zero or a.sign < 0 then
return false
end
for factor, power in pairs(a) do
if type(factor) == 'number' then
if factor == 2 and reduced then
-- do nothing
elseif power < 0 then
return false
end
end
end
if reduced then
if p.lt(a, 1) or p.geq(a, 2) then
return false
end
end
return true
end
-- determine whether a rational number represents a subharmonic
function p.is_subharmonic(a, reduced)
if type(a) == 'number' then
a = p.new(a)
end
if a.nan or a.inf or a.zero or a.sign < 0 then
return false
end
for factor, power in pairs(a) do
if type(factor) == 'number' then
if factor == 2 and reduced then
-- do nothing
elseif power > 0 then
return false
end
end
end
if reduced then
if p.lt(a, 1) or p.geq(a, 2) then
return false
end
end
end
end