{
var sum = [],
mean1 = [],
mean2 = [];
for (let j = 0; j < data.n; ++j) {
sum.push([...new Array(data.n).fill(0)]);
mean1.push(d3.mean(matrixBrownian, (d) => d[j]));
mean2.push(d3.mean(matrixBrownianBridge, (d) => d[j]));
}
for (let j = 0; j < data.n; ++j) {
for (let k = 0; k < data.n; ++k) {
for (let i = 0; i < data.T; ++i) {
sum[j][k] +=
(matrixBrownian[i][j] - mean1[j]) *
(matrixBrownianBridge[i][k] - mean2[k]);
}
}
}
var s;
for (let j = 0; j < data.n; ++j) {
s = sum[j][j];
for (let k = 0; k < data.n; ++k) {
sum[j][k] /= s;
}
}
return sum;
}