Binary Splitting

The Fast Fourier Transform (FFT) is an algorithm for computing [Graphics:../Images/FFT_gr_48.gif] based on binary splitting.  Here is how it works.  Start with the polynomial

    [Graphics:../Images/FFT_gr_49.gif]

Collect the terms with even powers of x together and the other terms are the ones with an odd power of x.

[Graphics:../Images/FFT_gr_50.gif]

Let
       [Graphics:../Images/FFT_gr_51.gif]
and
     [Graphics:../Images/FFT_gr_52.gif][Graphics:../Images/FFT_gr_53.gif]
     
Notice that both [Graphics:../Images/FFT_gr_54.gif]  and [Graphics:../Images/FFT_gr_55.gif]are polynomials of degree [Graphics:../Images/FFT_gr_56.gif] and that

             [Graphics:../Images/FFT_gr_57.gif]

For [Graphics:../Images/FFT_gr_58.gif],  to compute both  [Graphics:../Images/FFT_gr_59.gif]and [Graphics:../Images/FFT_gr_60.gif] notice that

    [Graphics:../Images/FFT_gr_61.gif]
    
    [Graphics:../Images/FFT_gr_62.gif]
    
Therefore, to compute both  [Graphics:../Images/FFT_gr_63.gif]and [Graphics:../Images/FFT_gr_64.gif]  we need only [Graphics:../Images/FFT_gr_65.gif] and [Graphics:../Images/FFT_gr_66.gif] and then do one additional multiplication:  [Graphics:../Images/FFT_gr_67.gif].


If we use this binary splitting technique, we can evaluate our polynomial of degree N-1 at N points by

(1)  Evaluating two polynomials ([Graphics:../Images/FFT_gr_68.gif]  and [Graphics:../Images/FFT_gr_69.gif]) at [Graphics:../Images/FFT_gr_70.gif]points each.   This takes   [Graphics:../Images/FFT_gr_71.gif] multiplications.
(2)  Combine these evaluations to get pairs of  values of [Graphics:../Images/FFT_gr_72.gif] and  [Graphics:../Images/FFT_gr_73.gif] as above with [Graphics:../Images/FFT_gr_74.gif] more multiplications.

Therefore we could cut the number of multiplications in half to [Graphics:../Images/FFT_gr_75.gif] by using binary splitting once.


Converted by Mathematica      May 10, 2000