Chapter 17: Problem 22
This exercise develops a fast algorithm, called the fast Fourier transform or FFT, for computing the function \(\mathcal{E}_{n, \omega} .\) This is a recursive algorithm 17.6 Faster polynomial arithmetic (*) FFT \(\left(n, \omega ; a_{0}, \ldots, a_{2^{n}-1}\right)\) that takes as input an integer \(n \geq 0,\) a primitive \(2^{n}\) th root of unity \(\omega \in R,\) and elements \(a_{0}, \ldots, a_{2^{n}-1} \in R,\) and runs as follows: if \(n=0\) then return \(a_{0}\) else $$ \begin{array}{l} \left(\alpha_{0}, \ldots, \alpha_{2^{n-1}-1}\right) \leftarrow \mathrm{FFT}\left(n-1, \omega^{2} ; a_{0}, a_{2}, \ldots, a_{2^{n}-2}\right) \\\ \left(\beta_{0}, \ldots, \beta_{2^{n-1}-1}\right) \leftarrow \mathrm{FFT}\left(n-1, \omega^{2} ; a_{1}, a_{3}, \ldots, a_{2^{n}-1}\right) \\\ \text { for } i \leftarrow 0 \text { to } 2^{n-1}-1 \mathrm{do} \\ \quad \gamma_{i} \leftarrow \alpha_{i}+\beta_{i} \omega^{i}, \gamma_{i+2^{n-1}} \leftarrow \alpha_{i}-\beta_{i} \omega^{i} \\ \text { return }\left(\gamma_{0}, \ldots, \gamma_{2^{n}-1}\right) \end{array} $$
Short Answer
Step by step solution
Key Concepts
These are the key concepts you need to understand to accurately answer the question.