gram function
Gram matrix G = B * B^* of the 2x2 basis b (coefficient representation).
Implementation
List<List<List<num>>> gram(List<List<List<num>>> b) {
final rows = b.length;
final ncols = b[0].length;
final deg = b[0][0].length;
final g = [
for (var i = 0; i < rows; i++)
[for (var j = 0; j < rows; j++) List<num>.filled(deg, 0)],
];
for (var i = 0; i < rows; i++) {
for (var j = 0; j < rows; j++) {
var acc = List<num>.filled(deg, 0);
for (var k = 0; k < ncols; k++) {
acc = FalconFFT.add(
acc,
FalconFFT.mul(b[i][k], FalconFFT.adj(b[j][k])),
);
}
g[i][j] = acc;
}
}
return g;
}