JSFiddle - React, Tailwind, and code Playground
HTML
<div id="output"></div>
JavaScript
var _f = [
[0,0,0,0,0],
[0,0,0,0,0],
[0,0,1,1,0],
[0,0,1,2,0],
[0,0,0,0,0]
];
var _h = [
[1,1],
[1,2]
];
var xres = _f[0].length;
var yres = _f.length;
function f(x,y) {
return (_f[x-1] || 0)[y-1] || 0;
}
function h(x,y) {
return (_h[x-1] || 0)[y-1] || 0;
}
function C_minus(x,y) {
var acc = 0;
for (var p = 1; p <= xres; p++) {
for (var q = 1; q <= yres; q++) {
acc += f(p,q) * h(p-x, q-y);
}
}
return acc;
}
function C_plus(x,y) {
var acc = 0;
for (var p = 1; p <= xres; p++) {
for (var q = 1; q <= yres; q++) {
acc += f(p,q) * h(p+x, q+y);
}
}
return acc;
}
function log(str) {
document.getElementById("output").innerHTML += (str || "") + "</br>";
}
function printMat(f) {
for (var q = 0; q < xres; q++) {
var str = "";
for (var p = 0; p < xres; p++) {
str += f(p,q) + ", ";
}
log(str);
}
}
log("C with minus:");
printMat(C_minus);
log();
log("C with plus:");
printMat(C_plus);