Module:Q-odd-limit intervals: Difference between revisions

ArrowHead294 (talk | contribs)
Restore revision 144934
ArrowHead294 (talk | contribs)
No edit summary
Line 125: Line 125:
local function approx(steps, subgroup, monzo_list, t_title)
local function approx(steps, subgroup, monzo_list, t_title)
local t_body_direct = {}
local t_body_direct = {}
local elist_direct = {}
local t_body_val = {}
local t_body_val = {}
local elist_val = {}
local val = {}
local val = {}
for i = 1, #subgroup do
for i = 1, #subgroup do
Line 133: Line 135:
for i = 1, #error_list do
for i = 1, #error_list do
ratiocomp = string.format("%d/%d, %d/%d", error_list[i].ratio.num, error_list[i].ratio.den, 2 * error_list[i].ratio.den, error_list[i].ratio.num)
ratiocomp = string.format("%d/%d, %d/%d", error_list[i].ratio.num, error_list[i].ratio.den, 2 * error_list[i].ratio.den, error_list[i].ratio.num)
error_abs_val = string.format("%.3f", error_list[i].error_abs_val)
eav = error_list[i].error_abs_val
error_rel_val = string.format("%.1f", error_list[i].error_rel_val)
erv = error_list[i].error_rel_val
error_abs_direct = string.format("%.3f", error_list[i].error_abs_direct)
ead = error_list[i].error_abs_direct
error_rel_direct = string.format("%.1f", error_list[i].error_rel_direct)
erd = error_list[i].error_rel_direct
error_abs_val = string.format("%.3f", eav)
error_rel_val = string.format("%.1f", erv)
error_abs_direct = string.format("%.3f", ead)
error_rel_direct = string.format("%.1f", erd)
if bit32.band(error_list[i].ratio.den, error_list[i].ratio.den - 1) == 0 and is_in(error_list[i].ratio.num, subgroup) then -- check power of 2 for den and prime for num
if bit32.band(error_list[i].ratio.den, error_list[i].ratio.den - 1) == 0 and is_in(error_list[i].ratio.num, subgroup) then -- check power of 2 for den and prime for num
ratiocomp = "'''" .. ratiocomp .. "'''"
ratiocomp = "'''" .. ratiocomp .. "'''"
Line 152: Line 158:
end
end
t_body_direct[i] = string.format("|-\n| %s\n| %s\n| %s", ratiocomp, error_abs_direct, error_rel_direct)
elist_direct[i] = {
t_body_val[i] = string.format("|-\n| %s\n| %s\n| %s", ratiocomp, error_abs_val, error_rel_val)
ratiocomp = ratiocomp,
ead = ead,
erd = erd,
error_abs_direct = error_abs_direct,
error_rel_direct = error_rel_direct,
}
elist_val[i] = {
ratiocomp = ratiocomp,
eav = eav,
erv = erv,
error_abs_val = error_abs_val,
error_rel_val = error_rel_val,
}
end
table.sort(elist_direct, function(a, b) return a.ead < b.ead end)
for i = 1, #error_list do
t_body_direct[i] = string.format("|-\n| %s\n| %s\n| %s", elist_direct[i].ratiocomp, elist_direct[i].error_abs_direct, elist_direct[i].error_rel_direct)
t_body_val[i] = string.format("|-\n| %s\n| %s\n| %s", elist_val[i].ratiocomp, elist_val[i].error_abs_val, elist_val[i].error_rel_val)
end
end