Module:MOS genchain: Difference between revisions
Created page with "local mos = require("Module:MOS") local tip = require("Module:Template input parse") local tamnams = require("Module:TAMNAMS") local yesno = require("Module:Yesno") local p =..." |
No edit summary |
||
| Line 36: | Line 36: | ||
end | end | ||
function p._mos_genchain(input_mos) | |||
local input_mos = input_mos or mos.new(5,2) | |||
local num_gens = mos.period_step_count(input_mos) | |||
local genchain = p.genchain(input_mos, num_gens) | |||
local rev_genchain = p.genchain(input_mos, -num_gens) | |||
-- Begin table | |||
local result = "{| class=\"wikitable center-all\"\n" | |||
.. "|-\n" | |||
-- Generators header cell | |||
result = result .. "! Bright generator count\n" | |||
-- Add a row for the generator counts | |||
-- Descending genchain | |||
for i = num_gens - 1, 1, -1 do | |||
if i == num_gens then | |||
result = result .. string.format("| %s", -i) | |||
else | |||
result = result .. string.format(" || %s", -i) | |||
end | |||
end | |||
-- Ascending genchain | |||
for i = 1, num_gens do | |||
result = result .. string.format(" || %s", i - 1) | |||
end | |||
result = result .. "\n" | |||
-- Add a row for each period's genchain | |||
local period_count = mos.period_count(input_mos) | |||
if period_count == 1 then | |||
result = result .. "! Degree quality\n" | |||
for i = num_gens, 1, -1 do | |||
local current_interval = mos.interval_mul(genchain[i], -1) | |||
current_interval = mos.equave_reduce(current_interval, input_mos) | |||
if i == num_gens then | |||
result = result .. string.format("| %s", tamnams.degree_quality(current_interval, input_mos, "abbrev")) | |||
else | |||
result = result .. string.format(" || %s", tamnams.degree_quality(current_interval, input_mos, "abbrev")) | |||
end | |||
end | |||
for i = 2, num_gens do | |||
local current_interval = mos.equave_reduce(genchain[i], input_mos) | |||
result = result .. string.format(" || %s", tamnams.degree_quality(current_interval, input_mos, "abbrev")) | |||
end | |||
else | |||
for i = 1, period_count do | |||
--wip | |||
end | |||
end | |||
return result | |||
end | |||
return p | return p | ||