RosettaCodeData/Task/Deconvolution-1D/EasyLang/deconvolution-1d.easy

20 lines
470 B
Plaintext

func[] deconv g[] f[] .
len h[] len g[] - len f[] + 1
for n = 1 to len h[]
h[n] = g[n]
low = higher 1 (n - len f[] + 1)
for i = low to n - 1
h[n] -= h[i] * f[n - i + 1]
.
h[n] /= f[1]
.
return h[]
.
h[] = [ -8 -9 -3 -1 -6 7 ]
f[] = [ -3 -6 -1 8 -6 3 -1 -9 -9 3 -2 5 2 -2 -7 -1 ]
g[] = [ 24 75 71 -34 3 22 -45 23 245 25 52 25 -67 -96 96 31 55 36 29 -43 -7 ]
print h[]
print deconv g[] f[]
print f[]
print deconv g[] h[]