Fast Fourier transform: Difference between revisions

Content added Content deleted
Line 2,736: Line 2,736:
O : table ;
O : table ;
Odds : table ;
Odds : table ;
R : table ;
T : complex ;
T : table ;


BEGIN
BEGIN
Line 2,751: Line 2,750:
SetLength ( E, halfN ) ;
SetLength ( E, halfN ) ;
SetLength ( O, halfN ) ;
SetLength ( O, halfN ) ;
Split ( L, E, O ) ;
SetLength ( L, 0 ) ;
SetLength ( Even, halfN ) ;
SetLength ( Even, halfN ) ;

Even := FFT ( E ) ;
SetLength ( E , 0 ) ;

SetLength ( Odds, halfN ) ;
SetLength ( Odds, halfN ) ;
Split ( L, E, O ) ;
Even := FFT ( E ) ;
Odds := FFT ( O ) ;
Odds := FFT ( O ) ;
SetLength ( E , 0 ) ;
SetLength ( O , 0 ) ;
SetLength ( O , 0 ) ;
SetLength ( R, N ) ;
SetLength ( L, N ) ;

SetLength ( T, halfN ) ;

FOR k := 0 to halfN - 1 DO
FOR k := 0 to halfN - 1 DO
BEGIN
BEGIN


T [ k ] := Cexp ( -2 * i * pi * k / N ) * Odds [ k ];
T := Cexp ( -2 * i * pi * k / N ) * Odds [ k ];


R [ k ] := Even [ k ] + T [ k ] ;
L [ k ] := Even [ k ] + T ;


R [ k + halfN ] := Even [ k ] - T [ k ] ;
L [ k + halfN ] := Even [ k ] - T ;
END ;
END ;


SetLength ( T , 0 ) ;
SetLength ( Even, 0 ) ;
SetLength ( Even, 0 ) ;
SetLength ( Odds, 0 ) ;
SetLength ( Odds, 0 ) ;
FFT := R ;
FFT := L ;

SetLength ( R, 0 ) ;


END ;
END ;
Line 2,833: Line 2,828:


</lang>
</lang>
JPD 2021/12/24
JPD 2021/12/26


=={{header|Perl}}==
=={{header|Perl}}==