Knowledge (XXG)

Cooley–Tukey FFT algorithm

Source 📝

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

Index

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
Chinese remainder theorem

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