Fast Fourier transform: Difference between revisions

Updated D version
m (Simplified)
(Updated D version)
Line 154:
auto ev = fft(array(stride(x, 2)));
auto od = fft(array(stride(x[1 .. $], 2)));
//auto l = map!((k){return ev[k]+expi(-2*PI*k/N)*od[k];})(iota(N/2));
//auto r = map!((k){return ev[k]-expi(-2*PI*k/N)*od[k];})(iota(N/2));
creal[] l, r;
foreach (k; 0 .. N/2) {
l ~= ev[k] + expi(-2 * PI * k / N) * od[k];
r ~= ev[k] - expi(-2 * PI * k / N) * od[k];
}
return array(chain(l, r));
}
Anonymous user