Module:Temperament data/Badness testing: Difference between revisions
CompactStar (talk | contribs) No edit summary |
CompactStar (talk | contribs) No edit summary |
||
(7 intermediate revisions by the same user not shown) | |||
Line 68: | Line 68: | ||
local function matinv(a) | local function matinv(a) | ||
local | local xn = scalarmatmul(a, 1e-7) | ||
for i = 1, | |||
for i = 1, 70 do | |||
xn = matsub(scalarmatmul(xn, 2), matmul(xn, matmul(a, xn))) | |||
end | end | ||
return xn | return xn | ||
end | end | ||
Line 334: | Line 323: | ||
end | end | ||
end | end | ||
c = c/(#mapping * #mapping[1]) | c = c/(#(mapping) * #(mapping[1])) | ||
mw.logObject(c) | |||
local te_generator = get_te_generator(subgroup, comma_matrix, generators) | local te_generator = get_te_generator(subgroup, comma_matrix, generators) | ||
local te_tuning = matmul(te_generator, mapping) | local te_tuning = matmul(te_generator, mapping) | ||
local e = 0.0 | local e = 0.0 | ||
for i = 1, #(te_tuning[1]) do | for i = 1, #(te_tuning[1]) do | ||
e = e + math.abs(te_tuning[1][i]) | -- mw.logObject(te_tuning) | ||
-- mw.logObject((te_tuning[1][i] * 1200) - ((math.log(subgroup[i])/math.log(2)) * 1200)) | |||
e = e + math.abs((te_tuning[1][i] * 1200) - ((math.log(subgroup[i])/math.log(2)) * 1200)) | |||
end | end | ||
e = e/#(te_tuning[1]) | e = e/#(te_tuning[1]) | ||
local usb = c * e | local usb = c * e | ||
result = | result = u._round(usb, 7) | ||
return result | return result | ||
end | end | ||
return p | return p |