Fast Fourier transform: Difference between revisions
→{{header|Perl 6}}: give terser functional version, along with its drawback and fix
m (→{{header|REXX}}: changed whitespace and indentations, optimized a computation.) |
(→{{header|Perl 6}}: give terser functional version, along with its drawback and fix) |
||
Line 2,010:
<lang perl6>sub fft {
@_ == 1 ?? @_ !!
}</lang>
This particular version is numerically inaccurate though, because of the pi approximation. It is possible to fix it with the 'cisPi' function available in the TrigPi module:
<lang perl6>sub fft {
use TrigPi;
@_ == 1 ?? @_ !!
fft(@_[0,2...*]) «+«
fft(@_[1,3...*]) «*« map &cisPi, (0,-2/@_...^-2)
}</lang>
|