12 lines
357 B
Plaintext
12 lines
357 B
Plaintext
fcn deconv(g,f){
|
|
flen, glen, delta:=f.len(), g.len(), glen - flen + 1;
|
|
result:=List.createLong(delta); // allocate list with space for items
|
|
foreach n in (delta){
|
|
e:=g[n];
|
|
lowerBound:=(if (n>=flen) n - flen + 1 else 0);
|
|
foreach i in ([lowerBound .. n-1]){ e-=result[i]*f[n - i]; }
|
|
result.append(e/f[0]);
|
|
}
|
|
result;
|
|
}
|