Fast Fourier transform: Difference between revisions

m
UFCS == win?
m (CTFE == win?)
m (UFCS == win?)
Line 362:
<lang D>import std.stdio, std.math, std.algorithm, std.range, std.complex, std.conv;
 
Complex!real[]auto fft(Complex!real[] x) {
{
int N = to!int(x.length);
if (N <= 1) { return x; }
Line 372 ⟶ 373:
}
 
void main() {
{
// map produces range, .array converts range to array
auto data = [1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0].map!(a => Complex!real(a, 0)).array.fft.writeln;
data.fft.writeln;
}</lang>
Output:<pre>[4+0i, 1+-2.41421i, 0+0i, 1+-0.414214i, 0+0i, 1+0.414214i, 0+0i, 1+2.41421i]</pre>
Anonymous user