Anonymous user
Fast Fourier transform: Difference between revisions
[Swift] Clean up print. Misc code changes
(Add Swift) |
([Swift] Clean up print. Misc code changes) |
||
Line 3,302:
}
let
let
let
} else if re
return im
} else if imaginary > 0 {
return re + " + " + im + "i"
▲ return result
} else {
return
}
}
Line 3,336 ⟶ 3,332:
precondition(n % 2 == 0, "The Cooley-Tukey FFT algorithm only works when the length of the input is even.")
var (evens, odds) = arr.lazy.enumerated().reduce(into: ([Complex](), [Complex]()), {res, cur in
▲ if i & 1 == 1 {
▲ odds.append(arr[i])
} else {
}
})
evens = _fft(evens, direction: direction, scalar: scalar)
odds = _fft(odds, direction: direction, scalar: scalar)
let
let offset = (direction * Complex((.pi * Double(i) / Double(n)), 0)).exp * odds[i] / cScalar
let base = evens[i] / cScalar
return (base + offset, base - offset)
}).reduce(into: ([Complex](), [Complex]()), {res, cur in
})
▲ left.append(l)
▲ right.append(r)
▲ }
return left + right
}
Line 3,376 ⟶ 3,364:
{{out}}
<pre>["4.000 + 2.000i", "2.414 + 1.000i", "-2.000
["1.000
=={{header|SystemVerilog}}==
|