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:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.