16 lines
404 B
Lua
16 lines
404 B
Lua
function deconvolve(f, g)
|
|
local h = setmetatable({}, {__index = function(self, n)
|
|
if n == 1 then self[1] = g[1] / f[1]
|
|
else
|
|
self[n] = g[n]
|
|
for i = 1, n - 1 do
|
|
self[n] = self[n] - self[i] * (f[n - i + 1] or 0)
|
|
end
|
|
self[n] = self[n] / f[1]
|
|
end
|
|
return self[n]
|
|
end})
|
|
local _ = h[#g - #f + 1]
|
|
return setmetatable(h, nil)
|
|
end
|