Knowledge

Cooley–Tukey FFT algorithm

Source 📝

2989: 2066: 6201:) time and has been the subject of much research. Also, while the permutation is a bit reversal in the radix-2 case, it is more generally an arbitrary (mixed-base) digit reversal for the mixed-radix case, and the permutation algorithms become more complicated to implement. Moreover, it is desirable on many hardware architectures to re-order intermediate stages of the FFT algorithm so that they operate on consecutive (or at least more localized) data elements. To these ends, a number of alternative implementation schemes have been devised for the Cooley–Tukey algorithm that do not require separate bit reversal and/or involve additional permutations at intermediate stages. 2984:{\displaystyle {\begin{aligned}X_{k+{\frac {N}{2}}}&=\sum \limits _{m=0}^{N/2-1}x_{2m}e^{-{\frac {2\pi i}{N/2}}m(k+{\frac {N}{2}})}+e^{-{\frac {2\pi i}{N}}(k+{\frac {N}{2}})}\sum \limits _{m=0}^{N/2-1}x_{2m+1}e^{-{\frac {2\pi i}{N/2}}m(k+{\frac {N}{2}})}\\&=\sum \limits _{m=0}^{N/2-1}x_{2m}e^{-{\frac {2\pi i}{N/2}}mk}e^{-2\pi mi}+e^{-{\frac {2\pi i}{N}}k}e^{-\pi i}\sum \limits _{m=0}^{N/2-1}x_{2m+1}e^{-{\frac {2\pi i}{N/2}}mk}e^{-2\pi mi}\\&=\sum \limits _{m=0}^{N/2-1}x_{2m}e^{-{\frac {2\pi i}{N/2}}mk}-e^{-{\frac {2\pi i}{N}}k}\sum \limits _{m=0}^{N/2-1}x_{2m+1}e^{-{\frac {2\pi i}{N/2}}mk}\\&=E_{k}-e^{-{\frac {2\pi i}{N}}k}O_{k}\end{aligned}}} 1808: 1257: 1803:{\displaystyle {\begin{matrix}X_{k}=\underbrace {\sum \limits _{m=0}^{N/2-1}x_{2m}e^{-{\frac {2\pi i}{N/2}}mk}} _{\mathrm {DFT\;of\;even-indexed\;part\;of\;} x_{n}}{}+e^{-{\frac {2\pi i}{N}}k}\underbrace {\sum \limits _{m=0}^{N/2-1}x_{2m+1}e^{-{\frac {2\pi i}{N/2}}mk}} _{\mathrm {DFT\;of\;odd-indexed\;part\;of\;} x_{n}}=E_{k}+e^{-{\frac {2\pi i}{N}}k}O_{k}\qquad {\text{ for }}k=0,\dots ,{\frac {N}{2}}-1.\end{matrix}}} 3941: 3360: 5410: 973: 4768: 3451:, ~8 digits). Rescaling the time by the number of operations, this corresponds roughly to a speedup factor of around 800,000. (To put the time for the hand calculation in perspective, 140 minutes for size 64 corresponds to an average of at most 16 seconds per floating-point operation, around 20% of which are multiplications.) 5106: 3250: 6247:
A typical strategy for in-place algorithms without auxiliary storage and without separate digit-reversal passes involves small matrix transpositions (which swap individual pairs of digits) at intermediate stages, which can be combined with the radix butterflies to reduce the number of passes over the
211:
by employing seismometers located outside the country. These sensors would generate seismological time series. However, analysis of this data would require fast algorithms for computing DFTs due to the number of sensors and length of time. This task was critical for the ratification of the proposed
4156:
merges radices 2 and 4, exploiting the fact that the first transform of radix 2 requires no twiddle factor, in order to achieve what was long the lowest known arithmetic operation count for power-of-two sizes, although recent variations achieve an even lower count. (On present-day computers,
5605:
Although the abstract Cooley–Tukey factorization of the DFT, above, applies in some form to all implementations of the algorithm, much greater diversity exists in the techniques for ordering and accessing the data at each stage of the FFT. Of special interest is the problem of devising an
216:
of IBM, recognized the potential of the method and put Tukey in touch with Cooley. However, Garwin made sure that Cooley did not know the original purpose. Instead, Cooley was told that this was needed to determine periodicities of the spin orientations in a 3-D crystal of
5112: 739: 4460: 4774: 6193:
Alternatively, some applications (such as convolution) work equally well on bit-reversed data, so one can perform forward transforms, processing, and then inverse transforms all without bit reversal to produce final results in the natural order.
3067: 3263:/2, is the core of the radix-2 DIT fast Fourier transform. The algorithm gains its speed by re-using the results of intermediate computations to compute multiple DFT outputs. Note that final outputs are obtained by a +/− combination of 261:) FFT is the simplest and most common form of the Cooley–Tukey algorithm, although highly optimized Cooley–Tukey implementations typically use other forms of the algorithm as described below. Radix-2 DIT divides a DFT of size 228:
The fact that Gauss had described the same algorithm (albeit without analyzing its asymptotic cost) was not realized until several years after Cooley and Tukey's 1965 paper. Their paper cited as inspiration only the work by
5439:(as well as mixed radices) can be employed, as was shown by both Cooley and Tukey as well as Gauss (who gave examples of radix-3 and radix-6 steps). Cooley and Tukey originally assumed that the radix butterfly required O( 4190:. The net result of all of these transpositions, for a radix-2 algorithm, corresponds to a bit reversal of the input (DIF) or output (DIT) indices. If, instead of using a small radix, one employs a radix of roughly 4108:(DIF, also called the Sande–Tukey algorithm). The version presented above was a radix-2 DIT algorithm; in the final expression, the phase multiplying the odd transform is the twiddle factor, and the +/- combination ( 377: 5923:
is pre-processed by bit-reversal.) Correspondingly, if you perform all of the steps in reverse order, you obtain a radix-2 DIF algorithm with bit reversal in post-processing (or pre-processing, respectively).
237:(PFA); although Good's algorithm was initially thought to be equivalent to the Cooley–Tukey algorithm, it was quickly realized that PFA is a quite different algorithm (working only for sizes that have 184:). Gauss did not analyze the asymptotic computational time, however. Various limited forms were also rediscovered several times throughout the 19th and early 20th centuries. FFTs became popular after 6216:
algorithm performs every stage of the FFT out-of-place, typically writing back and forth between two arrays, transposing one "digit" of the indices with each stage, and has been especially popular on
6197:
Many FFT users, however, prefer natural-order outputs, and a separate, explicit bit-reversal stage can have a non-negligible impact on the computation time, even though bit reversal can be done in O(
609: 516: 5405:{\displaystyle =\sum _{n_{1}=0}^{N_{1}-1}\left(\sum _{n_{2}=0}^{N_{2}-1}x_{N_{1}n_{2}+n_{1}}e^{-{\frac {2\pi i}{N_{2}}}n_{2}k_{2}}\right)e^{-{\frac {2\pi i}{N_{1}N_{2}}}n_{1}(N_{2}k_{1}+k_{2})}} 2071: 3857:
High-performance FFT implementations make many modifications to the implementation of such an algorithm compared to this simple pseudocode. For example, one can use a larger base case than
968:{\displaystyle {\begin{matrix}X_{k}&=&\sum \limits _{m=0}^{N/2-1}x_{2m}e^{-{\frac {2\pi i}{N}}(2m)k}+\sum \limits _{m=0}^{N/2-1}x_{2m+1}e^{-{\frac {2\pi i}{N}}(2m+1)k}\end{matrix}}} 4763:{\displaystyle X_{N_{2}k_{1}+k_{2}}=\sum _{n_{1}=0}^{N_{1}-1}\sum _{n_{2}=0}^{N_{2}-1}x_{N_{1}n_{2}+n_{1}}e^{-{\frac {2\pi i}{N_{1}N_{2}}}\cdot (N_{1}n_{2}+n_{1})\cdot (N_{2}k_{1}+k_{2})}} 1960: 1024: 5101:{\displaystyle =\sum _{n_{1}=0}^{N_{1}-1}\left\left(\sum _{n_{2}=0}^{N_{2}-1}x_{N_{1}n_{2}+n_{1}}e^{-{\frac {2\pi i}{N_{2}}}n_{2}k_{2}}\right)e^{-{\frac {2\pi i}{N_{1}}}n_{1}k_{1}}} 3350: 4452: 3059: 2004: 4336: 4280: 4165:
considerations than by strict operation counts; well-optimized FFT implementations often employ larger radices and/or hard-coded base-case transforms of significant size.).
1855: 95: 6236:) recursion and small radices, which produces natural-order out-of-place output with no separate permutation step (as in the pseudocode above) and can be argued to have 3245:{\displaystyle {\begin{matrix}X_{k}&=&E_{k}+e^{-{\frac {2\pi i}{N}}{k}}O_{k}\\X_{k+{\frac {N}{2}}}&=&E_{k}-e^{-{\frac {2\pi i}{N}}{k}}O_{k}\end{matrix}}} 1222: 1090: 731: 3944:
The basic step of the Cooley–Tukey FFT for general factorizations can be viewed as re-interpreting a 1d DFT as something like a 2d DFT. The 1d input array of length
1153: 1054: 694: 5824: 5797: 5751: 5724: 3288: 3019: 2058: 2031: 1909: 1882: 1249: 1180: 1117: 663: 6275:(Unpublished manuscript). Werke (in Latin and German). Vol. 3. Göttingen, Germany: Königlichen Gesellschaft der Wissenschaften zu Göttingen. pp. 265–303. 3914: 3993:
direction. The transposition step can be performed in the middle, as shown here, or at the beginning or end. This is done recursively for the smaller transforms.
635:
can usually be chosen freely by the application (e.g. by changing the sample rate or window, zero-padding, etcetera), this is often not an important restriction.
426: 400: 4393:, respectively; the difference between these indexings is a transposition, as mentioned above. When this re-indexing is substituted into the DFT formula for 3356:
in this context); when this is generalized to larger radices below, the size-2 DFT is replaced by a larger DFT (which itself can be evaluated with an FFT).
134:
Because the Cooley–Tukey algorithm breaks the DFT into smaller DFTs, it can be combined arbitrarily with any other algorithm for the DFT. For example,
3920:
reasons; these and other optimizations together can improve the performance by an order of magnitude or more. (In many textbook implementations the
5753:
are combined with a size-2 DFT, those two values are overwritten by the outputs. However, the two output values should go in the first and second
4132:
implementations handle composite sizes with a variety of (typically small) factors in addition to two, usually (but not always) employing the O(
131:). Because of the algorithm's importance, specific variants and implementation styles have become known by their own names, as described below. 7267: 3854:
is required; the often-mentioned necessity of a separate bit-reversal stage only arises for certain in-place algorithms, as described below.)
6976: 6859: 6771: 5699:. Consider the last stage of a radix-2 DIT algorithm like the one presented above, where the output is written in-place over the input: when 278: 6477:
Danielson, G. C., and C. Lanczos, "Some improvements in practical Fourier analysis and their application to X-ray scattering from liquids,"
212:
nuclear test ban so that any violations could be detected without need to visit Soviet facilities. Another participant at that meeting,
3387:; in many conventional implementations, however, the explicit recursion is avoided, and instead one traverses the computational tree in 221:. Cooley and Tukey subsequently published their joint paper, and wide adoption quickly followed due to the simultaneous development of 3986:
direction (the non-contiguous direction), then multiplies by phase factors (twiddle factors), and finally performs 1d DFTs along the
7043:) C library for computing discrete Fourier transforms in one or more dimensions, of arbitrary size, using the Cooley–Tukey algorithm 6422: 3443:
to 3–5 significant digits. Cooley and Tukey's 1965 paper reported a running time of 0.02 minutes for a size-2048 complex DFT on an
203:
Tukey reportedly came up with the idea during a meeting of President Kennedy's Science Advisory Committee discussing ways to detect
1963: 7235: 7217: 1026:
out of the second sum, as shown in the equation below. It is then clear that the two sums are the DFT of the even-indexed part
189: 7130:
Hegland, M. (1994). "A self-sorting in-place fast Fourier transform algorithm suitable for vector and parallel processing".
4207:, depending on the number of transpositions), initially proposed to improve memory locality, e.g. for cache optimization or 521: 5523:). This analysis was erroneous, however: the radix-butterfly is also a DFT and can be performed via an FFT algorithm in O( 3428: 434: 6224:
algorithm, which also reorders out-of-place with each stage, but this method requires separate bit/digit reversal and O(
4149: 3384: 139: 6208:: the output array is distinct from the input array or, equivalently, an equal-size auxiliary array is available. The 6366: 222: 7040: 6329: 234: 143: 47: 7095:
Qian, Z.; Lu, C.; An, M.; Tolimieri, R. (1994). "Self-sorting in-place FFT algorithm with minimum working space".
6237: 5508: 4212: 4153: 4113: 3416: 1914: 242: 200:
published a paper in 1965 reinventing the algorithm and describing how to perform it conveniently on a computer.
611:, and then combines those two results to produce the DFT of the whole sequence. This idea can then be performed 5618: 3851: 981: 6220:
architectures. Even greater potential SIMD advantages (more consecutive accesses) have been proposed for the
4145: 135: 7262: 5930:
The following is pseudocode for iterative radix-2 FFT algorithm implemented using bit-reversal permutation.
3293: 7139: 6837: 6796: 6648: 6460:
James W. Cooley, Peter A. W. Lewis, and Peter W. Welch, "Historical notes on the fast Fourier transform,"
6381: 4400: 3440: 3427:
asymptotic complexity they had achieved). The Danielson–Lanczos work predated widespread availability of
3024: 1969: 43: 5630: 4285: 4229: 3379:/2 size-2 DFTs called "butterfly" operations (so called because of the shape of the data-flow diagrams). 6268: 142:
algorithm can be used to handle large prime factors that cannot be decomposed by Cooley–Tukey, or the
7104: 6640: 6264: 3825: 3388: 197: 166: 154: 7245: 7227: 6386: 1816: 7144: 6842: 6801: 6653: 6562:
Duhamel, P., and M. Vetterli, "Fast Fourier transforms: a tutorial review and a state of the art,"
3412: 6578:
Lundy, T., and J. Van Buskirk, "A new matrix approach to real FFTs and convolutions of length 2,"
4112:) of the even and odd transforms is a size-2 DFT. (The radix's small DFT is sometimes known as a 57: 7157: 7015: 6900: 6865: 6814: 6666: 6542: 6347: 6233: 6232:) storage. One can also directly apply the Cooley–Tukey factorization definition with explicit ( 5607: 5569: 4386: 3976: 3818: 3806: 3423:
the DFT size until the transform spectrum converged (although they apparently didn't realize the
6301: 6968: 6960: 6972: 6855: 6832:
Carter, Larry; Gatlin, Kang Su (1998). "Towards an optimal bit-reversal permutation program".
6767: 6729: 6241: 3917: 3408: 3353: 1191: 1059: 699: 7149: 7112: 7077: 7005: 6892: 6847: 6806: 6658: 6532: 6391: 6337: 6297: 4117: 1128: 1029: 668: 238: 147: 51: 5802: 5775: 5729: 5702: 3266: 2997: 2036: 2009: 1887: 1860: 1227: 1158: 1095: 641: 6724:
M. Frigo, C. E. Leiserson, H. Prokop, and S. Ramachandran. Cache-oblivious algorithms. In
4390: 3997:
More generally, Cooley–Tukey algorithms recursively re-express a DFT of a composite size
3929: 3867: 3404: 204: 6745:
Cooley, J. W., P. Lewis and P. Welch, "The Fast Fourier Transform and its Applications",
6437: 405: 7108: 6834:
Proceedings 39th Annual Symposium on Foundations of Computer Science (Cat. No.98CB36280)
6644: 4136:) algorithm for the prime base cases of the recursion (it is also possible to employ an 4040: 4036: 3862: 3448: 3436: 3432: 385: 213: 17: 7256: 7161: 6883:
Rubio, M.; Gómez, P.; Drouiche, K. (2002). "A new superfast bit reversal algorithm".
6506:(C. S. Burrus, ed.), ch. 11, Rice University, Houston TX: Connexions, September 2008. 4200: 3925: 3419:
1903 work). They applied their lemma in a "backwards" recursive fashion, repeatedly
128: 7239: 7221: 7019: 6904: 6869: 6416: 4168:
Another way of looking at the Cooley–Tukey algorithm is that it re-expresses a size
3940: 6942: 6670: 6546: 5915:
post-process the output) with a bit reversal to get in-order output. (If each size-
4162: 3424: 628: 208: 185: 180:, but his work was not widely recognized (being published only posthumously and in 35: 5610:
that overwrites its input with its output data using only O(1) auxiliary storage.
5568:(32 or 64) are important in order to effectively exploit e.g. the large number of 3439:); they reported a computation time of 140 minutes for a size-64 DFT operating on 157:. Cooley and Tukey independently rediscovered and popularized it 160 years later. 165:
This algorithm, including its recursive application, was invented around 1805 by
5622: 4208: 3921: 3359: 6762:
Cormen, Thomas H.; Leiserson, Charles; Rivest, Ronald; Stein, Clifford (2009).
6662: 3460: 230: 193: 39: 6851: 6686:
Gentleman W. M., and G. Sande, "Fast Fourier transforms—for fun and profit,"
6395: 4454:
cross term vanishes (its exponential is unity), and the remaining terms give
7178: 6922: 5564:
is determined by more complicated considerations. In practice, quite large
4187: 4158: 612: 181: 112: 5882:. And for next recursive stage, those 4 least significant bits will become 3415:, since the identity was noted by those two authors in 1942 (influenced by 7153: 7053:
Johnson, H. W.; Burrus, C. S. (1984). "An in-place in-order radix-2 FFT".
7010: 6993: 6733: 6625: 6537: 6520: 7193: 6726:
Proceedings of the 40th IEEE Symposium on Foundations of Computer Science
5907:, If you include all of the recursive stages of a radix-2 DIT algorithm, 3444: 218: 173: 170: 5506:
from 2 to 12 the optimal radix is found to be 3 (the closest integer to
3928:
approach, although depth-first recursion has been argued to have better
6818: 6351: 372:{\displaystyle X_{k}=\sum _{n=0}^{N-1}x_{n}e^{-{\frac {2\pi i}{N}}nk},} 7116: 7068:
Temperton, C. (1991). "Self-sorting in-place fast Fourier transform".
7211: 7197: 6994:"An adaptation of the fast Fourier transform for parallel processing" 177: 153:
The algorithm, along with its recursive application, was invented by
7081: 6896: 6810: 6342: 6325:"An algorithm for the machine calculation of complex Fourier series" 6324: 5593:) complexity and has theoretical and practical advantages for large 6595: 5911:
the bits must be reversed and thus one must pre-process the input (
5826:
are interleaved in the even and odd elements, corresponding to the
5927:
The logarithm (log) used in this algorithm is a base 2 logarithm.
3939: 3358: 6499: 3932:.) Several of these ideas are described in further detail below. 6217: 4199:
and explicit input/output matrix transpositions, it is called a
4186:
two-dimensional DFT (plus twiddles), where the output matrix is
4128:
There are many other variations on the Cooley–Tukey algorithm.
272:
The discrete Fourier transform (DFT) is defined by the formula:
6885:
International Journal of Adaptive Control and Signal Processing
6766:(3rd ed.). Cambridge, Mass.: MIT Press. pp. 915–918. 431:
Radix-2 DIT first computes the DFTs of the even-indexed inputs
6423:"The Best of the 20th Century: Editors Name Top 10 Algorithms" 6365:
Cooley, James W.; Lewis, Peter A. W.; Welch, Peter D. (1967).
6117:
The bit-reverse-copy procedure can be implemented as follows.
5668:=32 inputs), is transferred to the index with reversed digits 245:, unlike the support for any composite size in Cooley–Tukey). 6705:
Bailey, David H., "FFTs in external or hierarchical memory,"
638:
The radix-2 DIT algorithm rearranges the DFT of the function
265:
into two interleaved DFTs (hence the name "radix-2") of size
7207: 4218:
The general Cooley–Tukey factorization rewrites the indices
6596:
A modified split-radix FFT with fewer arithmetic operations
7246:"Алгоритм БПФ по основанию два с прореживанием по частоте" 7228:"Алгоритм БПФ по основанию два с прореживанием по времени" 6271:[Theory regarding a new method of interpolation]. 5919:/2 subtransform is to operate on contiguous data, the DIT 5837:. Thus, in order to get the output in the correct place, 3916:
can be precomputed, and larger radices are often used for
146:
can be exploited for greater efficiency in separating out
4086:(which can differ between stages of the recursion). If 7034: 6787:
Karp, Alan H. (1996). "Bit reversal on uniprocessors".
3383:
This process is an example of the general technique of
5613:
The best-known reordering technique involves explicit
5601:
Data reordering, bit reversal, and in-place algorithms
3072: 1262: 744: 604:{\displaystyle (x_{2m+1}=x_{1},x_{3},\ldots ,x_{N-1})} 7202:
A simple mixed-radix Cooley–Tukey implementation in C
6419:
Special issue on "top ten algorithms of the century "
5805: 5778: 5732: 5705: 5443:) work and hence reckoned the complexity for a radix 5115: 4777: 4463: 4403: 4288: 4232: 3870: 3367:=8: a decimation-in-time radix-2 FFT breaks a length- 3296: 3269: 3070: 3027: 3000: 2069: 2039: 2012: 1972: 1917: 1890: 1863: 1819: 1260: 1230: 1194: 1161: 1131: 1098: 1062: 1032: 984: 742: 702: 671: 665:
into two parts: a sum over the even-numbered indices
644: 524: 437: 408: 388: 281: 169:, who used it to interpolate the trajectories of the 60: 7070:
SIAM Journal on Scientific and Statistical Computing
3375:/2 DFTs followed by a combining stage consisting of 511:{\displaystyle (x_{2m}=x_{0},x_{2},\ldots ,x_{N-2})} 6917:Originally attributed to Stockham in W. T. Cochran 6302:
Gauss and the history of the fast Fourier transform
3924:recursion is eliminated in favor of a nonrecursive 3352:, which is simply a size-2 DFT (sometimes called a 5818: 5791: 5745: 5718: 5572:on modern processors, and even an unbounded radix 5404: 5100: 4762: 4446: 4330: 4274: 3908: 3344: 3282: 3244: 3053: 3013: 2983: 2052: 2025: 1998: 1954: 1903: 1876: 1849: 1802: 1243: 1216: 1174: 1147: 1111: 1084: 1048: 1018: 967: 725: 688: 657: 603: 510: 420: 394: 371: 89: 6937: 6935: 6619: 6617: 6615: 6613: 6611: 5432:, and the bracketed term is the twiddle factor. 225:capable of sampling at rates up to 300 kHz. 6367:"Historical notes on the fast Fourier transform" 4211:operation, and was later shown to be an optimal 7236:"Radix-2 Decimation in Frequency FFT Algorithm" 6417:The FFT — an algorithm the whole family can use 6374:IEEE Transactions on Audio and Electroacoustics 6318: 6316: 6314: 6312: 6310: 6269:"Theoria interpolationis methodo nova tractata" 4363:of 1 or 2). That is, it re-indexes the input ( 7187:A simple, pedagogical radix-2 algorithm in C++ 6558: 6556: 3861:=1 to amortize the overhead of recursion, the 6682: 6680: 6514: 6512: 5959:the DFT of a. bit-reverse-copy(a, A) 8: 6292: 6290: 6288: 6286: 6284: 6282: 6146:complex values where n is a power of 2. 5951:complex values where n is a power of 2. 4144:algorithm for the prime base cases, such as 6701: 6699: 6494: 6492: 6490: 6304:," IEEE ASSP Magazine, 1, (4), 14–21 (1984) 6204:The problem is greatly simplified if it is 1955:{\displaystyle k=0,\dots ,{\frac {N}{2}}-1} 7218:"Radix-2 Decimation in Time FFT Algorithm" 6720: 6718: 5757:of the output array, corresponding to the 3255:This result, expressing the DFT of length 1685: 1678: 1665: 1631: 1624: 1455: 1448: 1435: 1398: 1391: 7143: 7009: 6841: 6800: 6652: 6536: 6521:"On computing the fast Fourier transform" 6385: 6341: 6323:Cooley, James W.; Tukey, John W. (1965). 5810: 5804: 5783: 5777: 5737: 5731: 5710: 5704: 5391: 5378: 5368: 5355: 5342: 5332: 5314: 5310: 5293: 5283: 5271: 5254: 5250: 5238: 5225: 5215: 5210: 5192: 5187: 5174: 5169: 5146: 5141: 5128: 5123: 5114: 5090: 5080: 5068: 5051: 5047: 5030: 5020: 5008: 4991: 4987: 4975: 4962: 4952: 4947: 4929: 4924: 4911: 4906: 4885: 4875: 4862: 4852: 4834: 4830: 4808: 4803: 4790: 4785: 4776: 4749: 4736: 4726: 4707: 4694: 4684: 4665: 4655: 4637: 4633: 4621: 4608: 4598: 4593: 4575: 4570: 4557: 4552: 4534: 4529: 4516: 4511: 4496: 4483: 4473: 4468: 4462: 4438: 4428: 4418: 4408: 4402: 4322: 4309: 4299: 4287: 4266: 4253: 4243: 4231: 3979:. One performs smaller 1d DFTs along the 3895: 3869: 3846:(The results are in the correct order in 3720:combine DFTs of two halves into full DFT: 3331: 3301: 3295: 3274: 3268: 3259:recursively in terms of two DFTs of size 3232: 3221: 3203: 3199: 3186: 3163: 3156: 3142: 3131: 3113: 3109: 3096: 3079: 3071: 3069: 3039: 3032: 3026: 3005: 2999: 2971: 2944: 2940: 2927: 2894: 2877: 2873: 2854: 2834: 2830: 2819: 2792: 2788: 2762: 2745: 2741: 2728: 2708: 2704: 2693: 2661: 2638: 2621: 2617: 2598: 2578: 2574: 2563: 2547: 2520: 2516: 2491: 2468: 2451: 2447: 2434: 2414: 2410: 2399: 2370: 2347: 2330: 2326: 2307: 2287: 2283: 2272: 2253: 2226: 2222: 2200: 2177: 2160: 2156: 2143: 2123: 2119: 2108: 2085: 2078: 2070: 2068: 2044: 2038: 2017: 2011: 1984: 1977: 1971: 1936: 1916: 1895: 1889: 1868: 1862: 1818: 1780: 1757: 1750: 1723: 1719: 1706: 1691: 1614: 1613: 1588: 1571: 1567: 1548: 1528: 1524: 1513: 1506: 1482: 1478: 1469: 1461: 1381: 1380: 1355: 1338: 1334: 1321: 1301: 1297: 1286: 1279: 1269: 1261: 1259: 1235: 1229: 1199: 1193: 1166: 1160: 1136: 1130: 1103: 1097: 1067: 1061: 1037: 1031: 1019:{\displaystyle e^{-{\frac {2\pi i}{N}}k}} 993: 989: 983: 920: 916: 897: 877: 873: 862: 820: 816: 803: 783: 779: 768: 751: 743: 741: 709: 701: 678: 670: 649: 643: 586: 567: 554: 532: 523: 493: 474: 461: 445: 436: 407: 387: 340: 336: 326: 310: 299: 286: 280: 81: 71: 59: 6626:"The Design and Implementation of FFTW3" 4116:, so-called because of the shape of the 3463:, the below procedure could be written: 696:and a sum over the odd-numbered indices 6256: 3435:(possibly with mechanical aids such as 5418:where each inner sum is a DFT of size 1964:periodicity of the complex exponential 623:). This simplified form assumes that 115:, to reduce the computation time to O( 46:(FFT) algorithm. It re-expresses the 6967:. New York: Academic Press. pp.  5535:actually cancels in the complexity O( 3345:{\displaystyle O_{k}\exp(-2\pi ik/N)} 7: 6296:Heideman, M. T., D. H. Johnson, and 4447:{\displaystyle N_{1}n_{2}N_{2}k_{1}} 3054:{\displaystyle X_{k+{\frac {N}{2}}}} 1999:{\displaystyle X_{k+{\frac {N}{2}}}} 631:; since the number of sample points 6943:FFT algorithms for vector computers 6923:What is the fast Fourier transform? 2816: 2690: 2560: 2396: 2269: 2105: 1510: 1283: 978:One can factor a common multiplier 859: 765: 615:to reduce the overall runtime to O( 7033:Frigo, Matteo; Johnson, Steven G. 6624:Frigo, M.; Johnson, S. G. (2005). 6240:locality benefits on systems with 5617:for in-place radix-2 algorithms. 5425:, each outer sum is a DFT of size 4338:, respectively, where the indices 4331:{\displaystyle n=N_{1}n_{2}+n_{1}} 4275:{\displaystyle k=N_{2}k_{1}+k_{2}} 4157:performance is determined more by 3429:mechanical or electronic computers 3394:The above re-expression of a size- 1813:Note that the equalities hold for 1682: 1679: 1675: 1672: 1669: 1666: 1662: 1659: 1656: 1653: 1650: 1647: 1644: 1638: 1635: 1632: 1628: 1625: 1621: 1618: 1615: 1452: 1449: 1445: 1442: 1439: 1436: 1432: 1429: 1426: 1423: 1420: 1417: 1414: 1408: 1405: 1402: 1399: 1395: 1392: 1388: 1385: 1382: 25: 5491:); from calculation of values of 3836:denotes the array starting with 3402:/2 DFTs is sometimes called the 1056:and the DFT of odd-indexed part 402:is an integer ranging from 0 to 27:Fast Fourier Transform algorithm 6594:Johnson, S. G., and M. Frigo, " 4082:necessarily prime), called the 1911:are calculated in this way for 1756: 7179:"Fast Fourier transform - FFT" 6519:Singleton, Richard C. (1967). 6468:(no. 10), p. 1675–1677 (1967). 5531:) operations, hence the radix 5397: 5361: 4755: 4719: 4713: 4677: 3903: 3877: 3339: 3313: 2380: 2361: 2263: 2244: 2210: 2191: 1850:{\displaystyle k=0,\dots ,N-1} 953: 938: 847: 838: 598: 525: 518:and of the odd-indexed inputs 505: 438: 269:/2 with each recursive stage. 1: 7268:Divide-and-conquer algorithms 6500:Implementing FFTs in practice 6498:S. G. Johnson and M. Frigo, " 6484:, 365–380 and 435–452 (1942). 5772:=32); whereas the two inputs 4093:is the radix, it is called a 3813:is an integer power of 2 and 3385:divide and conquer algorithms 6959:Swarztrauber, P. N. (1982). 6728:(FOCS 99), p.285-297. 1999. 4097:(DIT) algorithm, whereas if 3809:by a radix-2 DIT FFT, where 3555:trivial size-1 DFT base case 223:Analog-to-digital converters 90:{\displaystyle N=N_{1}N_{2}} 6600:IEEE Trans. Signal Process. 5625:where the data at an index 241:factors and relying on the 7284: 6929:vol. 55, 1664–1674 (1967). 6764:Introduction to algorithms 4385:two-dimensional arrays in 4172:one-dimensional DFT as an 235:prime-factor FFT algorithm 233:on what is now called the 48:discrete Fourier transform 6963:. In Rodrigue, G. (ed.). 6730:Extended abstract at IEEE 6663:10.1109/JPROC.2004.840301 5844:should take the place of 4213:cache-oblivious algorithm 3961:is reinterpreted as a 2d 243:Chinese remainder theorem 6852:10.1109/SFCS.1998.743505 6396:10.1109/tau.1967.1161903 3852:bit-reversal permutation 1857:, but the crux is that 1217:{\displaystyle x_{2m+1}} 1119:. Denote the DFT of the 1085:{\displaystyle x_{2m+1}} 726:{\displaystyle n={2m+1}} 6747:IEEE Trans on Education 6633:Proceedings of the IEEE 6504:Fast Fourier Transforms 4120:for the radix-2 case.) 4106:decimation in frequency 123:) for highly composite 18:Danielson-Lanczos lemma 7183:Cooley-Tukey technique 6961:"Vectorizing the FFTs" 5851:and the index becomes 5820: 5793: 5747: 5720: 5502:for integer values of 5406: 5205: 5159: 5102: 4942: 4821: 4764: 4588: 4547: 4448: 4332: 4276: 3994: 3910: 3380: 3363:Data flow diagram for 3346: 3284: 3246: 3055: 3015: 2985: 2849: 2723: 2593: 2429: 2302: 2138: 2054: 2027: 2006:is also obtained from 2000: 1956: 1905: 1878: 1851: 1804: 1543: 1316: 1245: 1218: 1176: 1149: 1148:{\displaystyle x_{2m}} 1113: 1086: 1050: 1049:{\displaystyle x_{2m}} 1020: 969: 892: 798: 727: 690: 689:{\displaystyle n={2m}} 659: 605: 512: 422: 396: 373: 321: 144:prime-factor algorithm 104:smaller DFTs of sizes 91: 50:(DFT) of an arbitrary 44:fast Fourier transform 32:Cooley–Tukey algorithm 7242:on November 14, 2017. 7154:10.1007/s002110050074 7132:Numerische Mathematik 7011:10.1145/321450.321457 6992:Pease, M. C. (1968). 6965:Parallel Computations 6949:vol. 1, 45–63 (1984). 6538:10.1145/363717.363771 6408:Rockmore, Daniel N., 6265:Gauss, Carl Friedrich 5821: 5819:{\displaystyle O_{k}} 5794: 5792:{\displaystyle E_{k}} 5748: 5746:{\displaystyle O_{k}} 5721: 5719:{\displaystyle E_{k}} 5407: 5165: 5119: 5103: 4902: 4781: 4765: 4548: 4507: 4449: 4333: 4277: 3943: 3911: 3760:← p + q 3362: 3347: 3285: 3283:{\displaystyle E_{k}} 3247: 3056: 3016: 3014:{\displaystyle X_{k}} 2986: 2815: 2689: 2559: 2395: 2268: 2104: 2055: 2053:{\displaystyle O_{k}} 2028: 2026:{\displaystyle E_{k}} 2001: 1957: 1906: 1904:{\displaystyle O_{k}} 1879: 1877:{\displaystyle E_{k}} 1852: 1805: 1509: 1282: 1246: 1244:{\displaystyle O_{k}} 1219: 1177: 1175:{\displaystyle E_{k}} 1150: 1114: 1112:{\displaystyle x_{n}} 1087: 1051: 1021: 970: 858: 764: 728: 691: 660: 658:{\displaystyle x_{n}} 606: 513: 423: 397: 374: 295: 92: 42:, is the most common 7224:on October 31, 2017. 7200:. 11 February 2022. 6941:P. N. Swarztrauber, 6836:. pp. 544–553. 6605:(1), 111–119 (2007). 5803: 5776: 5730: 5703: 5597:as mentioned above. 5113: 4775: 4461: 4401: 4286: 4230: 4104:is the radix, it is 4035:Multiply by complex 3909:{\displaystyle \exp} 3868: 3447:(probably in 36-bit 3371:DFT into two length- 3294: 3267: 3068: 3025: 2998: 2067: 2037: 2010: 1970: 1962:only. Thanks to the 1915: 1888: 1861: 1817: 1258: 1228: 1192: 1159: 1129: 1096: 1060: 1030: 982: 740: 700: 669: 642: 522: 435: 406: 386: 279: 257:decimation-in-time ( 249:The radix-2 DIT case 205:nuclear-weapon tests 167:Carl Friedrich Gauss 155:Carl Friedrich Gauss 58: 7109:1994ITSP...42.2835Q 6645:2005IEEEP..93..216F 6436:(4). Archived from 6242:hierarchical memory 5664:(e.g. 5 digits for 5570:processor registers 5560:), and the optimal 5435:An arbitrary radix 4078:is a small factor ( 1182:and the DFT of the 1125:ven-indexed inputs 421:{\displaystyle N-1} 7057:: 28A.2.1–28A.2.4. 6947:Parallel Computing 6212:Stockham auto-sort 5816: 5789: 5743: 5716: 5608:in-place algorithm 5512:, which minimizes 5402: 5098: 4760: 4444: 4328: 4272: 4095:decimation in time 4064:Typically, either 4039:(often called the 3995: 3977:column-major order 3906: 3433:manual calculation 3381: 3342: 3280: 3242: 3240: 3051: 3011: 2981: 2979: 2050: 2023: 1996: 1952: 1901: 1874: 1847: 1800: 1798: 1698: 1611: 1468: 1378: 1241: 1214: 1188:dd-indexed inputs 1172: 1145: 1109: 1082: 1046: 1016: 965: 963: 723: 686: 655: 601: 508: 418: 392: 369: 87: 7117:10.1109/78.324749 7103:(10): 2835–2836. 6978:978-0-12-592101-5 6861:978-0-8186-9172-0 6773:978-0-262-03384-8 6752:, 1, 28–34 (1969) 6712:(1), 23–35 (1990) 6707:J. Supercomputing 6693:, 563–578 (1966). 6564:Signal Processing 6479:J. Franklin Inst. 6410:Comput. Sci. Eng. 6123:bit-reverse-copy( 5349: 5277: 5074: 5014: 4869: 4672: 3975:matrix stored in 3219: 3171: 3129: 3047: 2960: 2903: 2808: 2771: 2647: 2536: 2477: 2378: 2356: 2261: 2242: 2208: 2186: 2093: 1992: 1944: 1788: 1760: 1739: 1597: 1507: 1505: 1498: 1364: 1280: 1278: 1009: 936: 836: 395:{\displaystyle k} 356: 16:(Redirected from 7275: 7249: 7243: 7238:. Archived from 7231: 7225: 7220:. Archived from 7204: 7189: 7166: 7165: 7147: 7127: 7121: 7120: 7097:IEEE Trans. ASSP 7092: 7086: 7085: 7065: 7059: 7058: 7050: 7044: 7038: 7030: 7024: 7023: 7013: 6989: 6983: 6982: 6956: 6950: 6939: 6930: 6915: 6909: 6908: 6880: 6874: 6873: 6845: 6829: 6823: 6822: 6804: 6784: 6778: 6777: 6759: 6753: 6743: 6737: 6722: 6713: 6703: 6694: 6684: 6675: 6674: 6656: 6630: 6621: 6606: 6592: 6586: 6576: 6570: 6569:, 259–299 (1990) 6560: 6551: 6550: 6540: 6516: 6507: 6496: 6485: 6475: 6469: 6458: 6452: 6451: 6449: 6448: 6442: 6427: 6421:Barry A. Cipra. 6415:(1), 60 (2000). 6406: 6400: 6399: 6389: 6371: 6362: 6356: 6355: 6345: 6320: 6305: 6294: 6277: 6276: 6261: 6215: 6214: 6033:← 1 5830:significant bit 5825: 5823: 5822: 5817: 5815: 5814: 5798: 5796: 5795: 5790: 5788: 5787: 5761:significant bit 5752: 5750: 5749: 5744: 5742: 5741: 5725: 5723: 5722: 5717: 5715: 5714: 5585:also achieves O( 5584: 5583: 5411: 5409: 5408: 5403: 5401: 5400: 5396: 5395: 5383: 5382: 5373: 5372: 5360: 5359: 5350: 5348: 5347: 5346: 5337: 5336: 5326: 5315: 5305: 5301: 5300: 5299: 5298: 5297: 5288: 5287: 5278: 5276: 5275: 5266: 5255: 5245: 5244: 5243: 5242: 5230: 5229: 5220: 5219: 5204: 5197: 5196: 5186: 5179: 5178: 5158: 5151: 5150: 5140: 5133: 5132: 5107: 5105: 5104: 5099: 5097: 5096: 5095: 5094: 5085: 5084: 5075: 5073: 5072: 5063: 5052: 5042: 5038: 5037: 5036: 5035: 5034: 5025: 5024: 5015: 5013: 5012: 5003: 4992: 4982: 4981: 4980: 4979: 4967: 4966: 4957: 4956: 4941: 4934: 4933: 4923: 4916: 4915: 4896: 4892: 4891: 4890: 4889: 4880: 4879: 4870: 4868: 4867: 4866: 4857: 4856: 4846: 4835: 4820: 4813: 4812: 4802: 4795: 4794: 4769: 4767: 4766: 4761: 4759: 4758: 4754: 4753: 4741: 4740: 4731: 4730: 4712: 4711: 4699: 4698: 4689: 4688: 4673: 4671: 4670: 4669: 4660: 4659: 4649: 4638: 4628: 4627: 4626: 4625: 4613: 4612: 4603: 4602: 4587: 4580: 4579: 4569: 4562: 4561: 4546: 4539: 4538: 4528: 4521: 4520: 4503: 4502: 4501: 4500: 4488: 4487: 4478: 4477: 4453: 4451: 4450: 4445: 4443: 4442: 4433: 4432: 4423: 4422: 4413: 4412: 4337: 4335: 4334: 4329: 4327: 4326: 4314: 4313: 4304: 4303: 4281: 4279: 4278: 4273: 4271: 4270: 4258: 4257: 4248: 4247: 4198: 4197: 4152:'s algorithm). 4118:dataflow diagram 3915: 3913: 3912: 3907: 3899: 3788: 3774:← p − q 3449:single precision 3398:DFT as two size- 3351: 3349: 3348: 3343: 3335: 3306: 3305: 3289: 3287: 3286: 3281: 3279: 3278: 3251: 3249: 3248: 3243: 3241: 3237: 3236: 3227: 3226: 3225: 3220: 3215: 3204: 3191: 3190: 3174: 3173: 3172: 3164: 3147: 3146: 3137: 3136: 3135: 3130: 3125: 3114: 3101: 3100: 3084: 3083: 3060: 3058: 3057: 3052: 3050: 3049: 3048: 3040: 3020: 3018: 3017: 3012: 3010: 3009: 2990: 2988: 2987: 2982: 2980: 2976: 2975: 2966: 2965: 2961: 2956: 2945: 2932: 2931: 2916: 2912: 2911: 2904: 2902: 2898: 2889: 2878: 2868: 2867: 2848: 2838: 2829: 2814: 2813: 2809: 2804: 2793: 2780: 2779: 2772: 2770: 2766: 2757: 2746: 2736: 2735: 2722: 2712: 2703: 2682: 2678: 2677: 2656: 2655: 2648: 2646: 2642: 2633: 2622: 2612: 2611: 2592: 2582: 2573: 2558: 2557: 2542: 2541: 2537: 2532: 2521: 2508: 2507: 2486: 2485: 2478: 2476: 2472: 2463: 2452: 2442: 2441: 2428: 2418: 2409: 2388: 2384: 2383: 2379: 2371: 2357: 2355: 2351: 2342: 2331: 2321: 2320: 2301: 2291: 2282: 2267: 2266: 2262: 2254: 2243: 2238: 2227: 2214: 2213: 2209: 2201: 2187: 2185: 2181: 2172: 2161: 2151: 2150: 2137: 2127: 2118: 2096: 2095: 2094: 2086: 2059: 2057: 2056: 2051: 2049: 2048: 2032: 2030: 2029: 2024: 2022: 2021: 2005: 2003: 2002: 1997: 1995: 1994: 1993: 1985: 1961: 1959: 1958: 1953: 1945: 1937: 1910: 1908: 1907: 1902: 1900: 1899: 1883: 1881: 1880: 1875: 1873: 1872: 1856: 1854: 1853: 1848: 1809: 1807: 1806: 1801: 1799: 1789: 1781: 1761: 1758: 1755: 1754: 1745: 1744: 1740: 1735: 1724: 1711: 1710: 1697: 1696: 1695: 1686: 1612: 1607: 1606: 1605: 1598: 1596: 1592: 1583: 1572: 1562: 1561: 1542: 1532: 1523: 1504: 1503: 1499: 1494: 1483: 1470: 1467: 1466: 1465: 1456: 1379: 1374: 1373: 1372: 1365: 1363: 1359: 1350: 1339: 1329: 1328: 1315: 1305: 1296: 1274: 1273: 1250: 1248: 1247: 1242: 1240: 1239: 1223: 1221: 1220: 1215: 1213: 1212: 1181: 1179: 1178: 1173: 1171: 1170: 1154: 1152: 1151: 1146: 1144: 1143: 1118: 1116: 1115: 1110: 1108: 1107: 1092:of the function 1091: 1089: 1088: 1083: 1081: 1080: 1055: 1053: 1052: 1047: 1045: 1044: 1025: 1023: 1022: 1017: 1015: 1014: 1010: 1005: 994: 974: 972: 971: 966: 964: 960: 959: 937: 932: 921: 911: 910: 891: 881: 872: 854: 853: 837: 832: 821: 811: 810: 797: 787: 778: 756: 755: 732: 730: 729: 724: 722: 695: 693: 692: 687: 685: 664: 662: 661: 656: 654: 653: 610: 608: 607: 602: 597: 596: 572: 571: 559: 558: 546: 545: 517: 515: 514: 509: 504: 503: 479: 478: 466: 465: 453: 452: 427: 425: 424: 419: 401: 399: 398: 393: 378: 376: 375: 370: 365: 364: 357: 352: 341: 331: 330: 320: 309: 291: 290: 239:relatively prime 148:relatively prime 96: 94: 93: 88: 86: 85: 76: 75: 21: 7283: 7282: 7278: 7277: 7276: 7274: 7273: 7272: 7253: 7252: 7244: 7234: 7226: 7216: 7192: 7185:. Article. 10. 7177: 7174: 7169: 7129: 7128: 7124: 7094: 7093: 7089: 7082:10.1137/0912043 7067: 7066: 7062: 7052: 7051: 7047: 7032: 7031: 7027: 6991: 6990: 6986: 6979: 6958: 6957: 6953: 6940: 6933: 6916: 6912: 6897:10.1002/acs.718 6891:(10): 703–707. 6882: 6881: 6877: 6862: 6831: 6830: 6826: 6811:10.1137/1038001 6786: 6785: 6781: 6774: 6761: 6760: 6756: 6744: 6740: 6723: 6716: 6704: 6697: 6685: 6678: 6628: 6623: 6622: 6609: 6593: 6589: 6585:, 23–45 (2007). 6577: 6573: 6561: 6554: 6531:(10): 647–654. 6518: 6517: 6510: 6497: 6488: 6476: 6472: 6459: 6455: 6446: 6444: 6440: 6425: 6420: 6407: 6403: 6387:10.1.1.467.7209 6369: 6364: 6363: 6359: 6343:10.2307/2003354 6336:(90): 297–301. 6322: 6321: 6308: 6295: 6280: 6263: 6262: 6258: 6254: 6238:cache-oblivious 6210: 6209: 6191: 6115: 6108: 5997: 5906: 5900: 5894: 5888: 5881: 5875: 5869: 5863: 5857: 5850: 5843: 5836: 5806: 5801: 5800: 5779: 5774: 5773: 5767: 5733: 5728: 5727: 5706: 5701: 5700: 5698: 5692: 5686: 5680: 5674: 5663: 5657: 5651: 5645: 5639: 5603: 5589: log  5579: 5577: 5556: 5519: 5498: 5487: 5475: 5464: 5431: 5424: 5387: 5374: 5364: 5351: 5338: 5328: 5327: 5316: 5306: 5289: 5279: 5267: 5256: 5246: 5234: 5221: 5211: 5206: 5188: 5170: 5164: 5160: 5142: 5124: 5111: 5110: 5086: 5076: 5064: 5053: 5043: 5026: 5016: 5004: 4993: 4983: 4971: 4958: 4948: 4943: 4925: 4907: 4901: 4897: 4881: 4871: 4858: 4848: 4847: 4836: 4826: 4822: 4804: 4786: 4773: 4772: 4745: 4732: 4722: 4703: 4690: 4680: 4661: 4651: 4650: 4639: 4629: 4617: 4604: 4594: 4589: 4571: 4553: 4530: 4512: 4492: 4479: 4469: 4464: 4459: 4458: 4434: 4424: 4414: 4404: 4399: 4398: 4391:row-major order 4384: 4377: 4358: 4351: 4344: 4318: 4305: 4295: 4284: 4283: 4262: 4249: 4239: 4228: 4227: 4193: 4191: 4185: 4178: 4140: log  4126: 4103: 4092: 4077: 4070: 4059: 4052: 4041:twiddle factors 4031: 4024: 4013: 4007: 3992: 3985: 3974: 3967: 3960: 3954: 3938: 3930:memory locality 3866: 3865: 3863:twiddle factors 3850:and no further 3841: 3784: 3781: 3773: 3765: 3758: 3753: 3745: 3727: 3703: 3689: 3682: 3676: 3669: 3662: 3640: 3632: 3626: 3612: 3602: 3592: 3569: 3553: 3546: 3529: 3515: 3504: 3498: 3492:): 3475: 3457: 3437:adding machines 3297: 3292: 3291: 3270: 3265: 3264: 3239: 3238: 3228: 3205: 3195: 3182: 3180: 3175: 3152: 3149: 3148: 3138: 3115: 3105: 3092: 3090: 3085: 3075: 3066: 3065: 3028: 3023: 3022: 3001: 2996: 2995: 2994:We can rewrite 2978: 2977: 2967: 2946: 2936: 2923: 2914: 2913: 2890: 2879: 2869: 2850: 2794: 2784: 2758: 2747: 2737: 2724: 2680: 2679: 2657: 2634: 2623: 2613: 2594: 2543: 2522: 2512: 2487: 2464: 2453: 2443: 2430: 2386: 2385: 2343: 2332: 2322: 2303: 2228: 2218: 2173: 2162: 2152: 2139: 2097: 2074: 2065: 2064: 2040: 2035: 2034: 2013: 2008: 2007: 1973: 1968: 1967: 1913: 1912: 1891: 1886: 1885: 1864: 1859: 1858: 1815: 1814: 1797: 1796: 1759: for  1746: 1725: 1715: 1702: 1687: 1584: 1573: 1563: 1544: 1508: 1484: 1474: 1457: 1351: 1340: 1330: 1317: 1281: 1265: 1256: 1255: 1251:and we obtain: 1231: 1226: 1225: 1195: 1190: 1189: 1162: 1157: 1156: 1132: 1127: 1126: 1099: 1094: 1093: 1063: 1058: 1057: 1033: 1028: 1027: 995: 985: 980: 979: 962: 961: 922: 912: 893: 822: 812: 799: 762: 757: 747: 738: 737: 698: 697: 667: 666: 645: 640: 639: 582: 563: 550: 528: 520: 519: 489: 470: 457: 441: 433: 432: 404: 403: 384: 383: 342: 332: 322: 282: 277: 276: 251: 163: 110: 103: 77: 67: 56: 55: 28: 23: 22: 15: 12: 11: 5: 7281: 7279: 7271: 7270: 7265: 7263:FFT algorithms 7255: 7254: 7251: 7250: 7232: 7214: 7205: 7190: 7173: 7172:External links 7170: 7168: 7167: 7145:10.1.1.54.5659 7138:(4): 507–547. 7122: 7087: 7076:(4): 808–823. 7060: 7045: 7025: 7004:(2): 252–264. 6984: 6977: 6951: 6931: 6910: 6875: 6860: 6843:10.1.1.46.9319 6824: 6802:10.1.1.24.2913 6779: 6772: 6754: 6738: 6714: 6695: 6676: 6654:10.1.1.66.3097 6639:(2): 216–231. 6607: 6587: 6571: 6552: 6508: 6486: 6470: 6453: 6401: 6357: 6306: 6278: 6255: 6253: 6250: 6119: 6104: 5993: 5936:iterative-fft 5932: 5904: 5898: 5892: 5886: 5879: 5873: 5867: 5861: 5855: 5848: 5841: 5834: 5813: 5809: 5786: 5782: 5765: 5740: 5736: 5713: 5709: 5696: 5690: 5684: 5678: 5672: 5661: 5655: 5649: 5643: 5637: 5602: 5599: 5552: 5517: 5496: 5485: 5473: 5460: 5429: 5422: 5416: 5415: 5414: 5413: 5399: 5394: 5390: 5386: 5381: 5377: 5371: 5367: 5363: 5358: 5354: 5345: 5341: 5335: 5331: 5325: 5322: 5319: 5313: 5309: 5304: 5296: 5292: 5286: 5282: 5274: 5270: 5265: 5262: 5259: 5253: 5249: 5241: 5237: 5233: 5228: 5224: 5218: 5214: 5209: 5203: 5200: 5195: 5191: 5185: 5182: 5177: 5173: 5168: 5163: 5157: 5154: 5149: 5145: 5139: 5136: 5131: 5127: 5122: 5118: 5108: 5093: 5089: 5083: 5079: 5071: 5067: 5062: 5059: 5056: 5050: 5046: 5041: 5033: 5029: 5023: 5019: 5011: 5007: 5002: 4999: 4996: 4990: 4986: 4978: 4974: 4970: 4965: 4961: 4955: 4951: 4946: 4940: 4937: 4932: 4928: 4922: 4919: 4914: 4910: 4905: 4900: 4895: 4888: 4884: 4878: 4874: 4865: 4861: 4855: 4851: 4845: 4842: 4839: 4833: 4829: 4825: 4819: 4816: 4811: 4807: 4801: 4798: 4793: 4789: 4784: 4780: 4757: 4752: 4748: 4744: 4739: 4735: 4729: 4725: 4721: 4718: 4715: 4710: 4706: 4702: 4697: 4693: 4687: 4683: 4679: 4676: 4668: 4664: 4658: 4654: 4648: 4645: 4642: 4636: 4632: 4624: 4620: 4616: 4611: 4607: 4601: 4597: 4592: 4586: 4583: 4578: 4574: 4568: 4565: 4560: 4556: 4551: 4545: 4542: 4537: 4533: 4527: 4524: 4519: 4515: 4510: 4506: 4499: 4495: 4491: 4486: 4482: 4476: 4472: 4467: 4441: 4437: 4431: 4427: 4421: 4417: 4411: 4407: 4382: 4375: 4367:) and output ( 4356: 4349: 4342: 4325: 4321: 4317: 4312: 4308: 4302: 4298: 4294: 4291: 4269: 4265: 4261: 4256: 4252: 4246: 4242: 4238: 4235: 4203:algorithm (or 4183: 4176: 4125: 4122: 4101: 4090: 4075: 4068: 4062: 4061: 4057: 4050: 4044: 4037:roots of unity 4033: 4029: 4022: 4011: 4005: 3990: 3983: 3972: 3965: 3958: 3952: 3937: 3934: 3905: 3902: 3898: 3894: 3891: 3888: 3885: 3882: 3879: 3876: 3873: 3839: 3797:,1), computes 3767: 3763: 3756: 3747: 3743: 3725: 3694: 3684: 3680: 3671: 3667: 3660: 3634: 3630: 3617: 3607: 3597: 3590: 3586:) 3563: 3551: 3544: 3520: 3510: 3502: 3496: 3469: 3465: 3456: 3453: 3341: 3338: 3334: 3330: 3327: 3324: 3321: 3318: 3315: 3312: 3309: 3304: 3300: 3277: 3273: 3253: 3252: 3235: 3231: 3224: 3218: 3214: 3211: 3208: 3202: 3198: 3194: 3189: 3185: 3181: 3179: 3176: 3170: 3167: 3162: 3159: 3155: 3151: 3150: 3145: 3141: 3134: 3128: 3124: 3121: 3118: 3112: 3108: 3104: 3099: 3095: 3091: 3089: 3086: 3082: 3078: 3074: 3073: 3046: 3043: 3038: 3035: 3031: 3008: 3004: 2992: 2991: 2974: 2970: 2964: 2959: 2955: 2952: 2949: 2943: 2939: 2935: 2930: 2926: 2922: 2919: 2917: 2915: 2910: 2907: 2901: 2897: 2893: 2888: 2885: 2882: 2876: 2872: 2866: 2863: 2860: 2857: 2853: 2847: 2844: 2841: 2837: 2833: 2828: 2825: 2822: 2818: 2812: 2807: 2803: 2800: 2797: 2791: 2787: 2783: 2778: 2775: 2769: 2765: 2761: 2756: 2753: 2750: 2744: 2740: 2734: 2731: 2727: 2721: 2718: 2715: 2711: 2707: 2702: 2699: 2696: 2692: 2688: 2685: 2683: 2681: 2676: 2673: 2670: 2667: 2664: 2660: 2654: 2651: 2645: 2641: 2637: 2632: 2629: 2626: 2620: 2616: 2610: 2607: 2604: 2601: 2597: 2591: 2588: 2585: 2581: 2577: 2572: 2569: 2566: 2562: 2556: 2553: 2550: 2546: 2540: 2535: 2531: 2528: 2525: 2519: 2515: 2511: 2506: 2503: 2500: 2497: 2494: 2490: 2484: 2481: 2475: 2471: 2467: 2462: 2459: 2456: 2450: 2446: 2440: 2437: 2433: 2427: 2424: 2421: 2417: 2413: 2408: 2405: 2402: 2398: 2394: 2391: 2389: 2387: 2382: 2377: 2374: 2369: 2366: 2363: 2360: 2354: 2350: 2346: 2341: 2338: 2335: 2329: 2325: 2319: 2316: 2313: 2310: 2306: 2300: 2297: 2294: 2290: 2286: 2281: 2278: 2275: 2271: 2265: 2260: 2257: 2252: 2249: 2246: 2241: 2237: 2234: 2231: 2225: 2221: 2217: 2212: 2207: 2204: 2199: 2196: 2193: 2190: 2184: 2180: 2176: 2171: 2168: 2165: 2159: 2155: 2149: 2146: 2142: 2136: 2133: 2130: 2126: 2122: 2117: 2114: 2111: 2107: 2103: 2100: 2098: 2092: 2089: 2084: 2081: 2077: 2073: 2072: 2047: 2043: 2020: 2016: 1991: 1988: 1983: 1980: 1976: 1951: 1948: 1943: 1940: 1935: 1932: 1929: 1926: 1923: 1920: 1898: 1894: 1871: 1867: 1846: 1843: 1840: 1837: 1834: 1831: 1828: 1825: 1822: 1811: 1810: 1795: 1792: 1787: 1784: 1779: 1776: 1773: 1770: 1767: 1764: 1753: 1749: 1743: 1738: 1734: 1731: 1728: 1722: 1718: 1714: 1709: 1705: 1701: 1694: 1690: 1684: 1681: 1677: 1674: 1671: 1668: 1664: 1661: 1658: 1655: 1652: 1649: 1646: 1643: 1640: 1637: 1634: 1630: 1627: 1623: 1620: 1617: 1610: 1604: 1601: 1595: 1591: 1587: 1582: 1579: 1576: 1570: 1566: 1560: 1557: 1554: 1551: 1547: 1541: 1538: 1535: 1531: 1527: 1522: 1519: 1516: 1512: 1502: 1497: 1493: 1490: 1487: 1481: 1477: 1473: 1464: 1460: 1454: 1451: 1447: 1444: 1441: 1438: 1434: 1431: 1428: 1425: 1422: 1419: 1416: 1413: 1410: 1407: 1404: 1401: 1397: 1394: 1390: 1387: 1384: 1377: 1371: 1368: 1362: 1358: 1354: 1349: 1346: 1343: 1337: 1333: 1327: 1324: 1320: 1314: 1311: 1308: 1304: 1300: 1295: 1292: 1289: 1285: 1277: 1272: 1268: 1264: 1263: 1238: 1234: 1211: 1208: 1205: 1202: 1198: 1169: 1165: 1142: 1139: 1135: 1106: 1102: 1079: 1076: 1073: 1070: 1066: 1043: 1040: 1036: 1013: 1008: 1004: 1001: 998: 992: 988: 976: 975: 958: 955: 952: 949: 946: 943: 940: 935: 931: 928: 925: 919: 915: 909: 906: 903: 900: 896: 890: 887: 884: 880: 876: 871: 868: 865: 861: 857: 852: 849: 846: 843: 840: 835: 831: 828: 825: 819: 815: 809: 806: 802: 796: 793: 790: 786: 782: 777: 774: 771: 767: 763: 761: 758: 754: 750: 746: 745: 721: 718: 715: 712: 708: 705: 684: 681: 677: 674: 652: 648: 600: 595: 592: 589: 585: 581: 578: 575: 570: 566: 562: 557: 553: 549: 544: 541: 538: 535: 531: 527: 507: 502: 499: 496: 492: 488: 485: 482: 477: 473: 469: 464: 460: 456: 451: 448: 444: 440: 417: 414: 411: 391: 380: 379: 368: 363: 360: 355: 351: 348: 345: 339: 335: 329: 325: 319: 316: 313: 308: 305: 302: 298: 294: 289: 285: 250: 247: 214:Richard Garwin 162: 159: 129:smooth numbers 108: 101: 84: 80: 74: 70: 66: 63: 34:, named after 26: 24: 14: 13: 10: 9: 6: 4: 3: 2: 7280: 7269: 7266: 7264: 7261: 7260: 7258: 7248:(in Russian). 7247: 7241: 7237: 7233: 7230:(in Russian). 7229: 7223: 7219: 7215: 7213: 7209: 7206: 7203: 7199: 7195: 7191: 7188: 7184: 7180: 7176: 7175: 7171: 7163: 7159: 7155: 7151: 7146: 7141: 7137: 7133: 7126: 7123: 7118: 7114: 7110: 7106: 7102: 7098: 7091: 7088: 7083: 7079: 7075: 7071: 7064: 7061: 7056: 7049: 7046: 7042: 7036: 7029: 7026: 7021: 7017: 7012: 7007: 7003: 6999: 6995: 6988: 6985: 6980: 6974: 6970: 6966: 6962: 6955: 6952: 6948: 6944: 6938: 6936: 6932: 6928: 6924: 6920: 6914: 6911: 6906: 6902: 6898: 6894: 6890: 6886: 6879: 6876: 6871: 6867: 6863: 6857: 6853: 6849: 6844: 6839: 6835: 6828: 6825: 6820: 6816: 6812: 6808: 6803: 6798: 6794: 6790: 6783: 6780: 6775: 6769: 6765: 6758: 6755: 6751: 6748: 6742: 6739: 6735: 6731: 6727: 6721: 6719: 6715: 6711: 6708: 6702: 6700: 6696: 6692: 6689: 6683: 6681: 6677: 6672: 6668: 6664: 6660: 6655: 6650: 6646: 6642: 6638: 6634: 6627: 6620: 6618: 6616: 6614: 6612: 6608: 6604: 6601: 6597: 6591: 6588: 6584: 6581: 6575: 6572: 6568: 6565: 6559: 6557: 6553: 6548: 6544: 6539: 6534: 6530: 6526: 6522: 6515: 6513: 6509: 6505: 6501: 6495: 6493: 6491: 6487: 6483: 6480: 6474: 6471: 6467: 6463: 6457: 6454: 6443:on 2009-04-07 6439: 6435: 6431: 6424: 6418: 6414: 6411: 6405: 6402: 6397: 6393: 6388: 6383: 6379: 6375: 6368: 6361: 6358: 6353: 6349: 6344: 6339: 6335: 6332: 6331: 6330:Math. Comput. 6326: 6319: 6317: 6315: 6313: 6311: 6307: 6303: 6299: 6293: 6291: 6289: 6287: 6285: 6283: 6279: 6274: 6270: 6266: 6260: 6257: 6251: 6249: 6245: 6243: 6239: 6235: 6231: 6227: 6223: 6219: 6213: 6207: 6202: 6200: 6195: 6190: 6186: 6183: 6179: 6176: 6172: 6169: 6165: 6161: 6157: 6153: 6149: 6145: 6141: 6137: 6134: 6130: 6126: 6122: 6118: 6114: 6111: 6107: 6103: 6100: 6096: 6093: 6089: 6085: 6082: 6078: 6074: 6071: 6067: 6064: 6061: 6057: 6054: 6050: 6046: 6043: 6039: 6036: 6032: 6029: 6026: 6023: 6019: 6016: 6012: 6009: 6005: 6001: 5996: 5992: 5988: 5985: 5981: 5977: 5973: 5970: 5967:.length 5966: 5962: 5958: 5954: 5950: 5946: 5942: 5939: 5935: 5931: 5928: 5925: 5922: 5918: 5914: 5910: 5903: 5897: 5891: 5885: 5878: 5872: 5866: 5860: 5854: 5847: 5840: 5833: 5829: 5811: 5807: 5784: 5780: 5771: 5764: 5760: 5756: 5738: 5734: 5711: 5707: 5695: 5689: 5683: 5677: 5671: 5667: 5660: 5654: 5648: 5642: 5636: 5632: 5629:, written in 5628: 5624: 5620: 5616: 5611: 5609: 5600: 5598: 5596: 5592: 5588: 5582: 5575: 5571: 5567: 5563: 5559: 5555: 5550: 5546: 5542: 5538: 5534: 5530: 5526: 5522: 5515: 5511: 5510: 5505: 5501: 5494: 5490: 5483: 5479: 5471: 5467: 5463: 5458: 5454: 5450: 5446: 5442: 5438: 5433: 5428: 5421: 5392: 5388: 5384: 5379: 5375: 5369: 5365: 5356: 5352: 5343: 5339: 5333: 5329: 5323: 5320: 5317: 5311: 5307: 5302: 5294: 5290: 5284: 5280: 5272: 5268: 5263: 5260: 5257: 5251: 5247: 5239: 5235: 5231: 5226: 5222: 5216: 5212: 5207: 5201: 5198: 5193: 5189: 5183: 5180: 5175: 5171: 5166: 5161: 5155: 5152: 5147: 5143: 5137: 5134: 5129: 5125: 5120: 5116: 5109: 5091: 5087: 5081: 5077: 5069: 5065: 5060: 5057: 5054: 5048: 5044: 5039: 5031: 5027: 5021: 5017: 5009: 5005: 5000: 4997: 4994: 4988: 4984: 4976: 4972: 4968: 4963: 4959: 4953: 4949: 4944: 4938: 4935: 4930: 4926: 4920: 4917: 4912: 4908: 4903: 4898: 4893: 4886: 4882: 4876: 4872: 4863: 4859: 4853: 4849: 4843: 4840: 4837: 4831: 4827: 4823: 4817: 4814: 4809: 4805: 4799: 4796: 4791: 4787: 4782: 4778: 4771: 4770: 4750: 4746: 4742: 4737: 4733: 4727: 4723: 4716: 4708: 4704: 4700: 4695: 4691: 4685: 4681: 4674: 4666: 4662: 4656: 4652: 4646: 4643: 4640: 4634: 4630: 4622: 4618: 4614: 4609: 4605: 4599: 4595: 4590: 4584: 4581: 4576: 4572: 4566: 4563: 4558: 4554: 4549: 4543: 4540: 4535: 4531: 4525: 4522: 4517: 4513: 4508: 4504: 4497: 4493: 4489: 4484: 4480: 4474: 4470: 4465: 4457: 4456: 4455: 4439: 4435: 4429: 4425: 4419: 4415: 4409: 4405: 4396: 4392: 4388: 4381: 4374: 4370: 4366: 4362: 4355: 4348: 4341: 4323: 4319: 4315: 4310: 4306: 4300: 4296: 4292: 4289: 4267: 4263: 4259: 4254: 4250: 4244: 4240: 4236: 4233: 4225: 4221: 4216: 4214: 4210: 4206: 4202: 4201:four-step FFT 4196: 4189: 4182: 4175: 4171: 4166: 4164: 4160: 4155: 4151: 4147: 4143: 4139: 4135: 4131: 4123: 4121: 4119: 4115: 4111: 4107: 4100: 4096: 4089: 4085: 4081: 4074: 4067: 4056: 4053:DFTs of size 4049: 4045: 4042: 4038: 4034: 4028: 4025:DFTs of size 4021: 4017: 4016: 4015: 4010: 4004: 4000: 3989: 3982: 3978: 3971: 3964: 3957: 3951: 3947: 3942: 3935: 3933: 3931: 3927: 3926:breadth-first 3923: 3919: 3900: 3896: 3892: 3889: 3886: 3883: 3880: 3874: 3871: 3864: 3860: 3855: 3853: 3849: 3844: 3842: 3835: 3831: 3827: 3824: 3821:of the input 3820: 3816: 3812: 3808: 3804: 3800: 3796: 3792: 3787: 3780: 3777: 3771: 3766: 3759: 3751: 3746: 3739: 3736: 3732: 3728: 3721: 3718: 3714: 3710: 3707: 3702: 3698: 3693: 3688: 3683: 3675: 3670: 3663: 3656: 3652: 3648: 3644: 3638: 3633: 3625: 3621: 3616: 3611: 3606: 3601: 3596: 3589: 3585: 3581: 3577: 3573: 3567: 3562: 3559: 3556: 3550: 3543: 3540: 3536: 3533: 3528: 3524: 3519: 3514: 3509: 3505: 3495: 3491: 3487: 3483: 3479: 3473: 3468: 3464: 3462: 3454: 3452: 3450: 3446: 3442: 3438: 3434: 3431:and required 3430: 3426: 3422: 3418: 3414: 3411: 3410: 3406: 3401: 3397: 3392: 3390: 3389:breadth-first 3386: 3378: 3374: 3370: 3366: 3361: 3357: 3355: 3336: 3332: 3328: 3325: 3322: 3319: 3316: 3310: 3307: 3302: 3298: 3275: 3271: 3262: 3258: 3233: 3229: 3222: 3216: 3212: 3209: 3206: 3200: 3196: 3192: 3187: 3183: 3177: 3168: 3165: 3160: 3157: 3153: 3143: 3139: 3132: 3126: 3122: 3119: 3116: 3110: 3106: 3102: 3097: 3093: 3087: 3080: 3076: 3064: 3063: 3062: 3044: 3041: 3036: 3033: 3029: 3006: 3002: 2972: 2968: 2962: 2957: 2953: 2950: 2947: 2941: 2937: 2933: 2928: 2924: 2920: 2918: 2908: 2905: 2899: 2895: 2891: 2886: 2883: 2880: 2874: 2870: 2864: 2861: 2858: 2855: 2851: 2845: 2842: 2839: 2835: 2831: 2826: 2823: 2820: 2810: 2805: 2801: 2798: 2795: 2789: 2785: 2781: 2776: 2773: 2767: 2763: 2759: 2754: 2751: 2748: 2742: 2738: 2732: 2729: 2725: 2719: 2716: 2713: 2709: 2705: 2700: 2697: 2694: 2686: 2684: 2674: 2671: 2668: 2665: 2662: 2658: 2652: 2649: 2643: 2639: 2635: 2630: 2627: 2624: 2618: 2614: 2608: 2605: 2602: 2599: 2595: 2589: 2586: 2583: 2579: 2575: 2570: 2567: 2564: 2554: 2551: 2548: 2544: 2538: 2533: 2529: 2526: 2523: 2517: 2513: 2509: 2504: 2501: 2498: 2495: 2492: 2488: 2482: 2479: 2473: 2469: 2465: 2460: 2457: 2454: 2448: 2444: 2438: 2435: 2431: 2425: 2422: 2419: 2415: 2411: 2406: 2403: 2400: 2392: 2390: 2375: 2372: 2367: 2364: 2358: 2352: 2348: 2344: 2339: 2336: 2333: 2327: 2323: 2317: 2314: 2311: 2308: 2304: 2298: 2295: 2292: 2288: 2284: 2279: 2276: 2273: 2258: 2255: 2250: 2247: 2239: 2235: 2232: 2229: 2223: 2219: 2215: 2205: 2202: 2197: 2194: 2188: 2182: 2178: 2174: 2169: 2166: 2163: 2157: 2153: 2147: 2144: 2140: 2134: 2131: 2128: 2124: 2120: 2115: 2112: 2109: 2101: 2099: 2090: 2087: 2082: 2079: 2075: 2063: 2062: 2061: 2045: 2041: 2018: 2014: 1989: 1986: 1981: 1978: 1974: 1965: 1949: 1946: 1941: 1938: 1933: 1930: 1927: 1924: 1921: 1918: 1896: 1892: 1869: 1865: 1844: 1841: 1838: 1835: 1832: 1829: 1826: 1823: 1820: 1793: 1790: 1785: 1782: 1777: 1774: 1771: 1768: 1765: 1762: 1751: 1747: 1741: 1736: 1732: 1729: 1726: 1720: 1716: 1712: 1707: 1703: 1699: 1692: 1688: 1641: 1608: 1602: 1599: 1593: 1589: 1585: 1580: 1577: 1574: 1568: 1564: 1558: 1555: 1552: 1549: 1545: 1539: 1536: 1533: 1529: 1525: 1520: 1517: 1514: 1500: 1495: 1491: 1488: 1485: 1479: 1475: 1471: 1462: 1458: 1411: 1375: 1369: 1366: 1360: 1356: 1352: 1347: 1344: 1341: 1335: 1331: 1325: 1322: 1318: 1312: 1309: 1306: 1302: 1298: 1293: 1290: 1287: 1275: 1270: 1266: 1254: 1253: 1252: 1236: 1232: 1209: 1206: 1203: 1200: 1196: 1187: 1186: 1167: 1163: 1140: 1137: 1133: 1124: 1123: 1104: 1100: 1077: 1074: 1071: 1068: 1064: 1041: 1038: 1034: 1011: 1006: 1002: 999: 996: 990: 986: 956: 950: 947: 944: 941: 933: 929: 926: 923: 917: 913: 907: 904: 901: 898: 894: 888: 885: 882: 878: 874: 869: 866: 863: 855: 850: 844: 841: 833: 829: 826: 823: 817: 813: 807: 804: 800: 794: 791: 788: 784: 780: 775: 772: 769: 759: 752: 748: 736: 735: 734: 719: 716: 713: 710: 706: 703: 682: 679: 675: 672: 650: 646: 636: 634: 630: 626: 622: 618: 614: 593: 590: 587: 583: 579: 576: 573: 568: 564: 560: 555: 551: 547: 542: 539: 536: 533: 529: 500: 497: 494: 490: 486: 483: 480: 475: 471: 467: 462: 458: 454: 449: 446: 442: 429: 415: 412: 409: 389: 366: 361: 358: 353: 349: 346: 343: 337: 333: 327: 323: 317: 314: 311: 306: 303: 300: 296: 292: 287: 283: 275: 274: 273: 270: 268: 264: 260: 256: 248: 246: 244: 240: 236: 232: 226: 224: 220: 215: 210: 206: 201: 199: 195: 191: 187: 183: 179: 175: 172: 168: 160: 158: 156: 151: 149: 145: 141: 137: 132: 130: 126: 122: 118: 114: 107: 100: 82: 78: 72: 68: 64: 61: 53: 49: 45: 41: 37: 33: 19: 7240:the original 7222:the original 7201: 7186: 7182: 7135: 7131: 7125: 7100: 7096: 7090: 7073: 7069: 7063: 7055:Proc. ICASSP 7054: 7048: 7028: 7001: 6997: 6987: 6964: 6954: 6946: 6926: 6918: 6913: 6888: 6884: 6878: 6833: 6827: 6792: 6788: 6782: 6763: 6757: 6749: 6746: 6741: 6725: 6709: 6706: 6690: 6687: 6636: 6632: 6602: 6599: 6590: 6582: 6579: 6574: 6566: 6563: 6528: 6524: 6503: 6481: 6478: 6473: 6465: 6461: 6456: 6445:. Retrieved 6438:the original 6433: 6429: 6412: 6409: 6404: 6380:(2): 76–79. 6377: 6373: 6360: 6333: 6328: 6298:C. S. Burrus 6272: 6259: 6246: 6229: 6225: 6221: 6211: 6206:out-of-place 6205: 6203: 6198: 6196: 6192: 6188: 6184: 6181: 6177: 6174: 6170: 6167: 6166:.length 6163: 6159: 6155: 6151: 6147: 6143: 6139: 6135: 6132: 6128: 6124: 6120: 6116: 6112: 6109: 6105: 6101: 6098: 6094: 6091: 6087: 6083: 6080: 6076: 6072: 6069: 6065: 6062: 6059: 6055: 6052: 6048: 6044: 6041: 6037: 6034: 6030: 6027: 6024: 6021: 6017: 6014: 6010: 6007: 6003: 5999: 5994: 5990: 5989:← 2 5986: 5983: 5979: 5975: 5971: 5968: 5964: 5960: 5956: 5952: 5948: 5944: 5940: 5937: 5933: 5929: 5926: 5920: 5916: 5912: 5908: 5901: 5895: 5889: 5883: 5876: 5870: 5864: 5858: 5852: 5845: 5838: 5831: 5827: 5769: 5762: 5758: 5754: 5693: 5687: 5681: 5675: 5669: 5665: 5658: 5652: 5646: 5640: 5634: 5633:with digits 5626: 5619:Bit reversal 5615:bit reversal 5614: 5612: 5604: 5594: 5590: 5586: 5580: 5573: 5565: 5561: 5557: 5553: 5548: 5544: 5540: 5536: 5532: 5528: 5524: 5520: 5513: 5507: 5503: 5499: 5492: 5488: 5481: 5477: 5469: 5465: 5461: 5456: 5452: 5448: 5444: 5440: 5436: 5434: 5426: 5419: 5417: 4394: 4387:column-major 4379: 4372: 4368: 4364: 4360: 4353: 4352:run from 0.. 4346: 4339: 4223: 4219: 4217: 4204: 4194: 4180: 4173: 4169: 4167: 4163:CPU pipeline 4141: 4137: 4133: 4129: 4127: 4109: 4105: 4098: 4094: 4087: 4083: 4079: 4072: 4065: 4063: 4054: 4047: 4026: 4019: 4008: 4002: 3998: 3996: 3987: 3980: 3969: 3962: 3955: 3949: 3945: 3858: 3856: 3847: 3845: 3837: 3833: 3829: 3822: 3814: 3810: 3807:out-of-place 3802: 3798: 3794: 3790: 3785: 3782: 3778: 3775: 3769: 3761: 3754: 3749: 3741: 3737: 3734: 3730: 3723: 3719: 3716: 3712: 3708: 3705: 3700: 3696: 3691: 3686: 3678: 3673: 3665: 3658: 3657:) 3654: 3650: 3646: 3642: 3636: 3628: 3623: 3619: 3614: 3609: 3604: 3599: 3594: 3587: 3583: 3579: 3575: 3571: 3565: 3560: 3557: 3554: 3548: 3541: 3538: 3534: 3531: 3526: 3522: 3517: 3512: 3507: 3500: 3493: 3489: 3485: 3481: 3477: 3471: 3466: 3458: 3425:linearithmic 3420: 3403: 3399: 3395: 3393: 3382: 3376: 3372: 3368: 3364: 3260: 3256: 3254: 2993: 1812: 1184: 1183: 1121: 1120: 977: 637: 632: 629:power of two 624: 620: 616: 430: 381: 271: 266: 262: 258: 254: 252: 227: 209:Soviet Union 202: 186:James Cooley 164: 152: 133: 124: 120: 116: 105: 98: 97:in terms of 36:J. W. Cooley 31: 29: 6795:(1): 1–26. 6789:SIAM Review 6734:at Citeseer 6688:Proc. AFIPS 6525:Commun. ACM 6234:depth-first 6006:) 5623:permutation 4209:out-of-core 4154:Split radix 4130:Mixed-radix 3922:depth-first 3729:q ← exp(−2π 3441:real inputs 613:recursively 140:Bluestein's 113:recursively 7257:Categories 6927:Proc. IEEE 6462:Proc. IEEE 6447:2009-03-31 6252:References 5539: log( 4188:transposed 4124:Variations 3817:=1 is the 3704:) 3627:) 3461:pseudocode 3455:Pseudocode 231:I. J. Good 194:John Tukey 40:John Tukey 7194:"KISSFFT" 7162:121258187 7140:CiteSeerX 6838:CiteSeerX 6797:CiteSeerX 6649:CiteSeerX 6580:Computing 6430:SIAM News 6382:CiteSeerX 6187: := 6121:algorithm 5998:← exp(−2π 5934:algorithm 5551: log 5472: log 5459: log 5321:π 5312:− 5261:π 5252:− 5199:− 5167:∑ 5153:− 5121:∑ 5058:π 5049:− 4998:π 4989:− 4936:− 4904:∑ 4841:π 4832:− 4815:− 4783:∑ 4717:⋅ 4675:⋅ 4644:π 4635:− 4582:− 4550:∑ 4541:− 4509:∑ 4150:Bluestein 4114:butterfly 4110:butterfly 3887:π 3881:− 3875:⁡ 3659:DFT of (x 3588:DFT of (x 3494:DFT of (x 3405:Danielson 3391:fashion. 3354:butterfly 3323:π 3317:− 3311:⁡ 3210:π 3201:− 3193:− 3120:π 3111:− 2951:π 2942:− 2934:− 2884:π 2875:− 2843:− 2817:∑ 2799:π 2790:− 2782:− 2752:π 2743:− 2717:− 2691:∑ 2669:π 2663:− 2628:π 2619:− 2587:− 2561:∑ 2552:π 2549:− 2527:π 2518:− 2499:π 2493:− 2458:π 2449:− 2423:− 2397:∑ 2337:π 2328:− 2296:− 2270:∑ 2233:π 2224:− 2167:π 2158:− 2132:− 2106:∑ 1947:− 1931:… 1842:− 1833:… 1791:− 1775:… 1730:π 1721:− 1642:− 1609:⏟ 1578:π 1569:− 1537:− 1511:∑ 1489:π 1480:− 1412:− 1376:⏟ 1345:π 1336:− 1310:− 1284:∑ 1000:π 991:− 927:π 918:− 886:− 860:∑ 827:π 818:− 792:− 766:∑ 591:− 577:… 498:− 484:… 413:− 347:π 338:− 315:− 297:∑ 198:Princeton 182:Neo-Latin 171:asteroids 150:factors. 52:composite 7039:A free ( 7020:14610645 6905:62201722 6870:14307262 6273:Nachlass 6267:(1866). 6154:of size 5447:to be O( 4359:-1 (for 4205:six-step 4046:Perform 4018:Perform 3445:IBM 7094 3421:doubling 219:helium-3 7105:Bibcode 6819:2132972 6671:6644892 6641:Bibcode 6547:6287781 6464:, vol. 6352:2003354 6148:output: 5953:output: 5621:is the 5578:√ 5543:)  5480:)  4192:√ 3786:ditfft2 3776:end for 3711:= 0 to 3690:, ..., 3643:ditfft2 3635:/2,..., 3613:, ..., 3572:ditfft2 3530:): 3516:, ..., 3478:ditfft2 3417:Runge's 3409:Lanczos 255:radix-2 207:in the 161:History 136:Rader's 7212:GitHub 7208:Dsplib 7198:GitHub 7160:  7142:  7035:"FFTW" 7018:  6998:J. ACM 6975:  6919:et al. 6903:  6868:  6858:  6840:  6817:  6799:  6770:  6669:  6651:  6545:  6502:," in 6384:  6350:  6248:data. 6158:. 6150:Array 6138:Array 6136:input: 6110:return 5955:Array 5943:Array 5941:input: 5755:halves 5631:binary 5468:) = O( 5451:  4397:, the 4148:'s or 3968:× 3819:stride 3783:Here, 3779:end if 3564:0,..., 3470:0,..., 382:where 174:Pallas 7158:S2CID 7016:S2CID 6969:51–83 6901:S2CID 6866:S2CID 6815:JSTOR 6667:S2CID 6629:(PDF) 6543:S2CID 6441:(PDF) 6426:(PDF) 6370:(PDF) 6348:JSTOR 6222:Pease 5921:input 5828:least 5768:(for 4371:) as 4159:cache 4146:Rader 4084:radix 3918:cache 3826:array 3801:=DFT( 3715:/2−1 3653:/2, 2 3582:/2, 2 3413:lemma 627:is a 54:size 6973:ISBN 6856:ISBN 6768:ISBN 6228:log 6218:SIMD 6180:– 1 6173:= 0 6051:– 1 6040:= 0 6013:= 0 5978:log( 5974:= 1 5799:and 5759:most 5726:and 5527:log 5516:/log 5495:/log 5484:/log 4389:and 4345:and 4282:and 4222:and 4161:and 4014:as: 3936:Idea 3722:p ← 3649:+s, 3568:/2−1 3558:else 3539:then 3537:= 1 3290:and 3061:as: 3021:and 2033:and 1884:and 619:log 192:and 178:Juno 176:and 119:log 38:and 30:The 7210:on 7150:doi 7113:doi 7078:doi 7041:GPL 7006:doi 6893:doi 6848:doi 6807:doi 6659:doi 6598:," 6533:doi 6482:233 6392:doi 6338:doi 6300:, " 6168:for 6142:of 6035:for 6020:-1 6008:for 5969:for 5947:of 5909:all 4378:by 4226:as 4179:by 4080:not 4071:or 3872:exp 3828:. 3706:for 3699:-1) 3622:-2) 3525:-1) 3459:In 3308:exp 1224:by 1155:by 259:DIT 196:of 190:IBM 188:of 138:or 7259:: 7196:. 7181:. 7156:. 7148:. 7136:68 7134:. 7111:. 7101:52 7099:. 7074:12 7072:. 7014:. 7002:15 7000:. 6996:. 6971:. 6945:, 6934:^ 6925:, 6921:, 6899:. 6889:16 6887:. 6864:. 6854:. 6846:. 6813:. 6805:. 6793:38 6791:. 6750:12 6732:, 6717:^ 6698:^ 6691:29 6679:^ 6665:. 6657:. 6647:. 6637:93 6635:. 6631:. 6610:^ 6603:55 6583:80 6567:19 6555:^ 6541:. 6529:10 6527:. 6523:. 6511:^ 6489:^ 6466:55 6434:33 6432:. 6428:. 6390:. 6378:15 6376:. 6372:. 6346:. 6334:19 6327:. 6309:^ 6281:^ 6244:. 6182:do 6175:to 6162:← 6133:is 6131:) 6097:← 6090:– 6086:← 6079:+ 6075:← 6068:← 6058:← 6053:do 6042:to 6028:do 6022:by 6015:to 5984:do 5982:) 5976:to 5963:← 5938:is 5913:or 4395:nk 4215:. 4043:). 4001:= 3948:= 3843:. 3805:) 3772:/2 3752:/2 3740:) 3717:do 3685:+4 3677:, 3672:+2 3664:, 3641:← 3639:−1 3603:, 3593:, 3578:, 3570:← 3547:← 3532:if 3506:, 3499:, 3488:, 3484:, 3476:← 3474:−1 2060:: 1966:, 1794:1. 733:: 428:. 253:A 111:, 7164:. 7152:: 7119:. 7115:: 7107:: 7084:. 7080:: 7037:. 7022:. 7008:: 6981:. 6907:. 6895:: 6872:. 6850:: 6821:. 6809:: 6776:. 6736:. 6710:4 6673:. 6661:: 6643:: 6549:. 6535:: 6450:. 6413:2 6398:. 6394:: 6354:. 6340:: 6230:N 6226:N 6199:N 6189:a 6185:A 6178:n 6171:k 6164:a 6160:n 6156:n 6152:A 6144:n 6140:a 6129:A 6127:, 6125:a 6113:A 6106:m 6102:ω 6099:ω 6095:ω 6092:t 6088:u 6084:A 6081:t 6077:u 6073:A 6070:A 6066:u 6063:A 6060:ω 6056:t 6049:2 6047:/ 6045:m 6038:j 6031:ω 6025:m 6018:n 6011:k 6004:m 6002:/ 6000:i 5995:m 5991:ω 5987:m 5980:n 5972:s 5965:a 5961:n 5957:A 5949:n 5945:a 5917:N 5905:2 5902:b 5899:3 5896:b 5893:4 5890:b 5887:1 5884:b 5880:1 5877:b 5874:2 5871:b 5868:3 5865:b 5862:4 5859:b 5856:0 5853:b 5849:4 5846:b 5842:0 5839:b 5835:0 5832:b 5812:k 5808:O 5785:k 5781:E 5770:N 5766:4 5763:b 5739:k 5735:O 5712:k 5708:E 5697:4 5694:b 5691:3 5688:b 5685:2 5682:b 5679:1 5676:b 5673:0 5670:b 5666:N 5662:0 5659:b 5656:1 5653:b 5650:2 5647:b 5644:3 5641:b 5638:4 5635:b 5627:n 5595:N 5591:N 5587:N 5581:N 5576:= 5574:r 5566:r 5562:r 5558:N 5554:r 5549:r 5547:/ 5545:N 5541:r 5537:r 5533:r 5529:r 5525:r 5521:r 5518:2 5514:r 5509:e 5504:r 5500:r 5497:2 5493:r 5489:r 5486:2 5482:r 5478:N 5476:( 5474:2 5470:N 5466:N 5462:r 5457:r 5455:/ 5453:N 5449:r 5445:r 5441:r 5437:r 5430:1 5427:N 5423:2 5420:N 5412:. 5398:) 5393:2 5389:k 5385:+ 5380:1 5376:k 5370:2 5366:N 5362:( 5357:1 5353:n 5344:2 5340:N 5334:1 5330:N 5324:i 5318:2 5308:e 5303:) 5295:2 5291:k 5285:2 5281:n 5273:2 5269:N 5264:i 5258:2 5248:e 5240:1 5236:n 5232:+ 5227:2 5223:n 5217:1 5213:N 5208:x 5202:1 5194:2 5190:N 5184:0 5181:= 5176:2 5172:n 5162:( 5156:1 5148:1 5144:N 5138:0 5135:= 5130:1 5126:n 5117:= 5092:1 5088:k 5082:1 5078:n 5070:1 5066:N 5061:i 5055:2 5045:e 5040:) 5032:2 5028:k 5022:2 5018:n 5010:2 5006:N 5001:i 4995:2 4985:e 4977:1 4973:n 4969:+ 4964:2 4960:n 4954:1 4950:N 4945:x 4939:1 4931:2 4927:N 4921:0 4918:= 4913:2 4909:n 4899:( 4894:] 4887:2 4883:k 4877:1 4873:n 4864:2 4860:N 4854:1 4850:N 4844:i 4838:2 4828:e 4824:[ 4818:1 4810:1 4806:N 4800:0 4797:= 4792:1 4788:n 4779:= 4756:) 4751:2 4747:k 4743:+ 4738:1 4734:k 4728:2 4724:N 4720:( 4714:) 4709:1 4705:n 4701:+ 4696:2 4692:n 4686:1 4682:N 4678:( 4667:2 4663:N 4657:1 4653:N 4647:i 4641:2 4631:e 4623:1 4619:n 4615:+ 4610:2 4606:n 4600:1 4596:N 4591:x 4585:1 4577:2 4573:N 4567:0 4564:= 4559:2 4555:n 4544:1 4536:1 4532:N 4526:0 4523:= 4518:1 4514:n 4505:= 4498:2 4494:k 4490:+ 4485:1 4481:k 4475:2 4471:N 4466:X 4440:1 4436:k 4430:2 4426:N 4420:2 4416:n 4410:1 4406:N 4383:2 4380:N 4376:1 4373:N 4369:k 4365:n 4361:a 4357:a 4354:N 4350:a 4347:n 4343:a 4340:k 4324:1 4320:n 4316:+ 4311:2 4307:n 4301:1 4297:N 4293:= 4290:n 4268:2 4264:k 4260:+ 4255:1 4251:k 4245:2 4241:N 4237:= 4234:k 4224:n 4220:k 4195:N 4184:2 4181:N 4177:1 4174:N 4170:N 4142:N 4138:N 4134:N 4102:2 4099:N 4091:1 4088:N 4076:2 4073:N 4069:1 4066:N 4060:. 4058:1 4055:N 4051:2 4048:N 4032:. 4030:2 4027:N 4023:1 4020:N 4012:2 4009:N 4006:1 4003:N 3999:N 3991:1 3988:N 3984:2 3981:N 3973:2 3970:N 3966:1 3963:N 3959:2 3956:N 3953:1 3950:N 3946:N 3904:] 3901:N 3897:/ 3893:k 3890:i 3884:2 3878:[ 3859:N 3848:X 3840:s 3838:x 3834:s 3832:+ 3830:x 3823:x 3815:s 3811:N 3803:x 3799:X 3795:N 3793:, 3791:x 3789:( 3770:N 3768:+ 3764:k 3762:X 3757:k 3755:X 3750:N 3748:+ 3744:k 3742:X 3738:k 3735:N 3733:/ 3731:i 3726:k 3724:X 3713:N 3709:k 3701:s 3697:N 3695:( 3692:x 3687:s 3681:s 3679:x 3674:s 3668:s 3666:x 3661:s 3655:s 3651:N 3647:x 3645:( 3637:N 3631:N 3629:X 3624:s 3620:N 3618:( 3615:x 3610:s 3608:4 3605:x 3600:s 3598:2 3595:x 3591:0 3584:s 3580:N 3576:x 3574:( 3566:N 3561:X 3552:0 3549:x 3545:0 3542:X 3535:N 3527:s 3523:N 3521:( 3518:x 3513:s 3511:2 3508:x 3503:s 3501:x 3497:0 3490:s 3486:N 3482:x 3480:( 3472:N 3467:X 3407:– 3400:N 3396:N 3377:N 3373:N 3369:N 3365:N 3340:) 3337:N 3333:/ 3329:k 3326:i 3320:2 3314:( 3303:k 3299:O 3276:k 3272:E 3261:N 3257:N 3234:k 3230:O 3223:k 3217:N 3213:i 3207:2 3197:e 3188:k 3184:E 3178:= 3169:2 3166:N 3161:+ 3158:k 3154:X 3144:k 3140:O 3133:k 3127:N 3123:i 3117:2 3107:e 3103:+ 3098:k 3094:E 3088:= 3081:k 3077:X 3045:2 3042:N 3037:+ 3034:k 3030:X 3007:k 3003:X 2973:k 2969:O 2963:k 2958:N 2954:i 2948:2 2938:e 2929:k 2925:E 2921:= 2909:k 2906:m 2900:2 2896:/ 2892:N 2887:i 2881:2 2871:e 2865:1 2862:+ 2859:m 2856:2 2852:x 2846:1 2840:2 2836:/ 2832:N 2827:0 2824:= 2821:m 2811:k 2806:N 2802:i 2796:2 2786:e 2777:k 2774:m 2768:2 2764:/ 2760:N 2755:i 2749:2 2739:e 2733:m 2730:2 2726:x 2720:1 2714:2 2710:/ 2706:N 2701:0 2698:= 2695:m 2687:= 2675:i 2672:m 2666:2 2659:e 2653:k 2650:m 2644:2 2640:/ 2636:N 2631:i 2625:2 2615:e 2609:1 2606:+ 2603:m 2600:2 2596:x 2590:1 2584:2 2580:/ 2576:N 2571:0 2568:= 2565:m 2555:i 2545:e 2539:k 2534:N 2530:i 2524:2 2514:e 2510:+ 2505:i 2502:m 2496:2 2489:e 2483:k 2480:m 2474:2 2470:/ 2466:N 2461:i 2455:2 2445:e 2439:m 2436:2 2432:x 2426:1 2420:2 2416:/ 2412:N 2407:0 2404:= 2401:m 2393:= 2381:) 2376:2 2373:N 2368:+ 2365:k 2362:( 2359:m 2353:2 2349:/ 2345:N 2340:i 2334:2 2324:e 2318:1 2315:+ 2312:m 2309:2 2305:x 2299:1 2293:2 2289:/ 2285:N 2280:0 2277:= 2274:m 2264:) 2259:2 2256:N 2251:+ 2248:k 2245:( 2240:N 2236:i 2230:2 2220:e 2216:+ 2211:) 2206:2 2203:N 2198:+ 2195:k 2192:( 2189:m 2183:2 2179:/ 2175:N 2170:i 2164:2 2154:e 2148:m 2145:2 2141:x 2135:1 2129:2 2125:/ 2121:N 2116:0 2113:= 2110:m 2102:= 2091:2 2088:N 2083:+ 2080:k 2076:X 2046:k 2042:O 2019:k 2015:E 1990:2 1987:N 1982:+ 1979:k 1975:X 1950:1 1942:2 1939:N 1934:, 1928:, 1925:0 1922:= 1919:k 1897:k 1893:O 1870:k 1866:E 1845:1 1839:N 1836:, 1830:, 1827:0 1824:= 1821:k 1786:2 1783:N 1778:, 1772:, 1769:0 1766:= 1763:k 1752:k 1748:O 1742:k 1737:N 1733:i 1727:2 1717:e 1713:+ 1708:k 1704:E 1700:= 1693:n 1689:x 1683:f 1680:o 1676:t 1673:r 1670:a 1667:p 1663:d 1660:e 1657:x 1654:e 1651:d 1648:n 1645:i 1639:d 1636:d 1633:o 1629:f 1626:o 1622:T 1619:F 1616:D 1603:k 1600:m 1594:2 1590:/ 1586:N 1581:i 1575:2 1565:e 1559:1 1556:+ 1553:m 1550:2 1546:x 1540:1 1534:2 1530:/ 1526:N 1521:0 1518:= 1515:m 1501:k 1496:N 1492:i 1486:2 1476:e 1472:+ 1463:n 1459:x 1453:f 1450:o 1446:t 1443:r 1440:a 1437:p 1433:d 1430:e 1427:x 1424:e 1421:d 1418:n 1415:i 1409:n 1406:e 1403:v 1400:e 1396:f 1393:o 1389:T 1386:F 1383:D 1370:k 1367:m 1361:2 1357:/ 1353:N 1348:i 1342:2 1332:e 1326:m 1323:2 1319:x 1313:1 1307:2 1303:/ 1299:N 1294:0 1291:= 1288:m 1276:= 1271:k 1267:X 1237:k 1233:O 1210:1 1207:+ 1204:m 1201:2 1197:x 1185:O 1168:k 1164:E 1141:m 1138:2 1134:x 1122:E 1105:n 1101:x 1078:1 1075:+ 1072:m 1069:2 1065:x 1042:m 1039:2 1035:x 1012:k 1007:N 1003:i 997:2 987:e 957:k 954:) 951:1 948:+ 945:m 942:2 939:( 934:N 930:i 924:2 914:e 908:1 905:+ 902:m 899:2 895:x 889:1 883:2 879:/ 875:N 870:0 867:= 864:m 856:+ 851:k 848:) 845:m 842:2 839:( 834:N 830:i 824:2 814:e 808:m 805:2 801:x 795:1 789:2 785:/ 781:N 776:0 773:= 770:m 760:= 753:k 749:X 720:1 717:+ 714:m 711:2 707:= 704:n 683:m 680:2 676:= 673:n 651:n 647:x 633:N 625:N 621:N 617:N 599:) 594:1 588:N 584:x 580:, 574:, 569:3 565:x 561:, 556:1 552:x 548:= 543:1 540:+ 537:m 534:2 530:x 526:( 506:) 501:2 495:N 491:x 487:, 481:, 476:2 472:x 468:, 463:0 459:x 455:= 450:m 447:2 443:x 439:( 416:1 410:N 390:k 367:, 362:k 359:n 354:N 350:i 344:2 334:e 328:n 324:x 318:1 312:N 307:0 304:= 301:n 293:= 288:k 284:X 267:N 263:N 127:( 125:N 121:N 117:N 109:2 106:N 102:1 99:N 83:2 79:N 73:1 69:N 65:= 62:N 20:)

Index

Danielson-Lanczos lemma
J. W. Cooley
John Tukey
fast Fourier transform
discrete Fourier transform
composite
recursively
smooth numbers
Rader's
Bluestein's
prime-factor algorithm
relatively prime
Carl Friedrich Gauss
Carl Friedrich Gauss
asteroids
Pallas
Juno
Neo-Latin
James Cooley
IBM
John Tukey
Princeton
nuclear-weapon tests
Soviet Union
Richard Garwin
helium-3
Analog-to-digital converters
I. J. Good
prime-factor FFT algorithm
relatively prime

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.