polymul static method
Implementation
static Poly polymul(Poly a, Poly b) {
var c = List<int>.filled(n, 0);
for (var i = 0; i < n; i++) {
for (var j = 0; j < n; j++) {
var kidx = (i + j) % n;
var prod = a.coeffs[i] * b.coeffs[j];
var sign = (i + j < n) ? 1 : -1;
c[kidx] = (c[kidx] + sign * prod) % q;
if (c[kidx] < 0) c[kidx] += q;
}
}
return Poly(c);
}