magnitude method
Applies in-place magnitude or power calculation to the complex-
valued array whith the real part reals and the imaginary part imags.
according to the following equations:
realsi := realsi**2 + imagsi**2 if sqrt is false ("power")
realsi := sqrt(realsi**2 + imagsi**2) if sqrt is true ("magnitude")
imags remains unchanged!
Implementation
void magnitude(Float64List reals, Float64List imags, bool sqrt) {
if (imags == null || (imags.length != reals.length)) {
throw """real and imaginary spectrum have unequal sizes:
${reals.length} + ' / ' + ${imags.length}""";
}
double real, imag, realnew;
int size1 = reals.length - 1;
for (int i = 0; i <= size1; i++) {
real = reals[i];
imag = imags[i];
realnew = real * real + imag * imag;
if (sqrt) realnew = math.sqrt(realnew);
reals[i] = realnew;
}
}