import ( "fft.lib.dsp" ) ; import ( "complex.lib" ) ; evens = case { (2) => _ , ! ; (n) => _ , ! , evens(n - 2); }; odds = case { (2) => ! , _ ; (n) => ! , _ , odds(n - 2); }; eo(n) = evens(n), odds(n); shuffling = case { (2) => eo(2); (n) => (evens(n) <: shuffling(n/2)), (odds(n) <: shuffling(n/2)); }; shuffle(n) = bus(n) <: shuffling(n); input2complex(n) = par(i, n, (sca2pcplx)); fft(n) = input2complex(n) : shuffle(n) : xbutterflies(n); picks(n) = par(i, n, [i]); concats = case { (1) => vectorize(1); (n) => concats(n-1) # vectorize(1); }; modules_vector(n) = concats(n); fft_test(n) = _ : vectorize(n) <: picks(n) : fft(n) : pcplx_moduls(n) : modules_vector(n) : serialize; //process = 1 : W(8); //process = +, _ : + : fft_test(128); process = fft_test(128); //process = (0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7) <: shuffle(8);