fftReal function
Implementation
void fftReal(int n, Int32List v) {
int scale = kLogFftSize;
int m = n >> 1;
fft(n, v);
for (int i = 1; i <= n; i <<= 1) {
--scale;
}
v[0] = _mult(~v[0], 0x80008000);
v[m] = _half(v[m]);
for (int i = 1; i < n >> 1; ++i) {
int x = _half(v[i]);
int z = _half(v[n - i]);
int y = (z - (x ^ 0xFFFF));
x = _half((x + (z ^ 0xFFFF)));
y = _mult(y, twiddle[i << scale]);
v[i] = (x - y) & 0xFFFFFFFF;
v[n - i] = ((x + y) ^ 0xFFFF);
}
}