convolveComplex function
void
convolveComplex()
Implementation
void convolveComplex(List<double> xreal, List<double> ximag, List<double> yreal,
List<double> yimag, List<double> outreal, List<double> outimag) {
var n = xreal.length;
if (n != ximag.length ||
n != yreal.length ||
n != yimag.length ||
n != outreal.length ||
n != outimag.length) throw new RangeError("长度不匹配");
xreal = xreal.toList();
ximag = ximag.toList();
yreal = yreal.toList();
yimag = yimag.toList();
transform(xreal, ximag);
transform(yreal, yimag);
for (var i = 0; i < n; i++) {
var temp = xreal[i] * yreal[i] - ximag[i] * yimag[i];
ximag[i] = ximag[i] * yreal[i] + xreal[i] * yimag[i];
xreal[i] = temp;
}
inverseTransform(xreal, ximag);
for (var i = 0; i < n; i++) {
outreal[i] = xreal[i] / n;
outimag[i] = ximag[i] / n;
}
}