|
Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
-- zquotients.lua: handle (z)quotients of ZHAs
-- This file:
-- http://angg.twu.net/dednat6/dednat6/zquotients.lua
-- http://angg.twu.net/dednat6/dednat6/zquotients.lua.html
-- (find-angg "dednat6/dednat6/zquotients.lua")
--
-- This is obsolete and broken and will be deleted.
-- Part of its functionality went to:
-- (find-angg "dednat6/dednat6/zhas.lua" "ZHA-getcuts")
todd = function (a, b) return a..b end
to_d_d = function (o)
if type(o) == "string" then return o:sub(1,1)+0, o:sub(2)+0 end
return o:to_l_r()
end
Picc = Class {
type = "Picc",
from = function (spicc)
local n = spicc:sub(-1)+0
local picc = Picc {spicc=spicc, n=n, qn=0, low={}, hi={}, trans={}}
for digits in spicc:gmatch"%d+" do
local low, hi = digits:sub(1, 1), digits:sub(-1)
local range = low.."-"..hi
for b=low+0,hi+0 do
picc.low[b] = low+0
picc.hi [b] = hi +0
end
picc.trans[picc.qn] = range
picc.trans[range] = picc.qn
picc.qn = picc.qn + 1
end
picc.qn = picc.qn - 1
return picc
end,
__index = {
down = function (picc, b) return picc.low[b] end,
downoneup = function (picc, b)
if b == 0 then return 0 end
local a,c = picc.low[b-1], picc.low[b-1]
if c == #picc.low then return 0 end
return c
end,
},
}
-- Not used (?), and the demos are broken
ZQuotient = Class {
type = "ZQuotient",
from = function (leftspicc, rightspicc)
local leftpicc = Picc.from(leftspicc)
local rightpicc = Picc.from(rightspicc)
return ZQuotient {L=leftpicc, R=rightpicc}
end,
__index = {
quot_lr2 = function (zq, l, r) return zq.L:down(l), zq.L:downoneup(r) end,
quot_rl2 = function (zq, l, r) return zq.L:downoneup(l), zq.L:down(r) end,
quot_lr1 = function (zq, ab) return todd(zq:quot_lr2(to_d_d(ab))) end,
quot_rl2 = function (zq, ab) return todd(zq:quot_rl2(to_d_d(ab))) end,
quotientarrows = function (zq, lrs, rls)
local qlrs, qrls = {}
for ab in lrs:gmatch"%d" do table.insert(qlrs, zq:quot_lr1(ab)) end
for ab in rls:gmatch"%d" do table.insert(qrls, zq:quot_rl1(ab)) end
qlrs = table.concat(qlrs, " ")
qrls = table.concat(qrls, " ")
return qlrs, qrls
end,
},
}
-- local a, b = ab:sub(1,1)+0, ab:sub(2)+0
--[[
• (eepitch-lua51)
• (eepitch-kill)
• (eepitch-lua51)
dofile "zquotients.lua"
PPV(Picc.from "01|234|56")
zq = ZQuotient.from("01|234|56", "01|234|56")
zq:quot_lr1()
zq = ZQuotient.from2("01|234|56", "01|234|56")
PPV(zq.L)
= zq:quotientarrow_lr(2, 2)
= zq:quotientarrow_lr(3, 3)
= zq:quotientarrow_lr(5, 5)
= zq:quotientarrow_lr(6, 5)
--]]
-- Local Variables:
-- coding: utf-8-unix
-- End: