TODO ==== - install fftw3-dev and test scipy new - install fftw2 and fftw3 on your own and check results ... FFT summary =========== new scipy - fftw3 ----------------- In [7]: scipy.__core_version__ Out[7]: '0.8.3.1630' In [8]: scipy.__scipy_version__ Out[8]: '0.4.3.1482' USES fftw3: scipy.fftpack._fftpack? ! ldd /home/abaecker/NBB/NEW_SCIPY/INSTfftw3/lib/python2.3/site-packages/scipy/fftpack/_fftpack.so libfftw3.so.3 => /usr/lib/libfftw3.so.3 (0x40024000) #METHOD fftw3 (AB) Fast Fourier Transform ================================================= | real input | complex input ------------------------------------------------- size | scipy | Numeric | scipy | Numeric ------------------------------------------------- 100 | 0.23 | 0.23 | 1.56 | 0.23 (secs for 7000 calls) 1000 | 0.17 | 0.31 | 1.62 | 0.30 (secs for 2000 calls) 256 | 0.40 | 0.46 | 3.21 | 0.47 (secs for 10000 calls) 512 | 0.55 | 0.84 | 4.19 | 0.81 (secs for 10000 calls) 1024 | 0.09 | 0.16 | 0.67 | 0.15 (secs for 1000 calls) 2048 | 0.16 | 0.28 | 1.16 | 0.30 (secs for 1000 calls) 4096 | 0.17 | 0.30 | 1.08 | 0.29 (secs for 500 calls) 8192 | 0.46 | 1.04 | 2.38 | 1.01 (secs for 500 calls) Multi-dimensional Fast Fourier Transform =================================================== | real input | complex input --------------------------------------------------- size | scipy | Numeric | scipy | Numeric --------------------------------------------------- 100x100 | 0.20 | 0.30 | 0.21 | 0.33 (secs for 100 calls) 1000x100 | 0.30 | 0.40 | 0.31 | 0.38 (secs for 7 calls) 256x256 | 0.60 | 0.49 | 0.66 | 0.45 (secs for 10 calls) 512x512 | 1.05 | 0.60 | 1.07 | 0.56 (secs for 3 calls) new scipy - fftw2 ----------------- In [7]: scipy.__core_version__ Out[7]: '0.8.3.1630' In [8]: scipy.__scipy_version__ Out[8]: '0.4.3.1482' USES fftw2: scipy.fftpack._fftpack? ! ldd /home/abaecker/NBB/NEW_SCIPY/INST/lib/python2.3/site-packages/scipy/fftpack/_fftpack.so librfftw.so.2 => /usr/lib/librfftw.so.2 (0x40024000) libfftw.so.2 => /usr/lib/libfftw.so.2 (0x40052000) #METHOD fftw2 (AB) Fast Fourier Transform ================================================= | real input | complex input ------------------------------------------------- size | scipy | Numeric | scipy | Numeric ------------------------------------------------- 100 | 0.22 | 0.24 | 0.23 | 0.24 (secs for 7000 calls) 1000 | 0.18 | 0.31 | 0.22 | 0.31 (secs for 2000 calls) 256 | 0.39 | 0.46 | 0.42 | 0.46 (secs for 10000 calls) 512 | 0.52 | 0.82 | 0.61 | 0.82 (secs for 10000 calls) 1024 | 0.08 | 0.15 | 0.11 | 0.15 (secs for 1000 calls) 2048 | 0.15 | 0.29 | 0.20 | 0.29 (secs for 1000 calls) 4096 | 0.15 | 0.30 | 0.22 | 0.31 (secs for 500 calls) 8192 | 0.37 | 0.82 | 0.72 | 0.90 (secs for 500 calls) Multi-dimensional Fast Fourier Transform =================================================== | real input | complex input --------------------------------------------------- size | scipy | Numeric | scipy | Numeric --------------------------------------------------- 100x100 | 0.12 | 0.34 | 0.14 | 0.34 (secs for 100 calls) 1000x100 | 0.27 | 0.39 | 0.27 | 0.40 (secs for 7 calls) 256x256 | 0.39 | 0.44 | 0.40 | 0.44 (secs for 10 calls) 512x512 | 0.52 | 0.58 | 0.51 | 0.60 (secs for 3 calls) old scipy --------- uses fftw2 ldd /usr/lib/python2.3/site-packages/scipy/fftpack/_fftpack.so #METHOD fftw2 (old scipy, AB) Fast Fourier Transform ================================================= | real input | complex input ------------------------------------------------- size | scipy | Numeric | scipy | Numeric ------------------------------------------------- 100 | 0.19 | 0.23 | 0.20 | 0.23 (secs for 7000 calls) 1000 | 0.17 | 0.31 | 0.24 | 0.31 (secs for 2000 calls) 256 | 0.34 | 0.45 | 0.40 | 0.50 (secs for 10000 calls) 512 | 0.48 | 0.80 | 0.57 | 0.83 (secs for 10000 calls) 1024 | 0.08 | 0.15 | 0.10 | 0.15 (secs for 1000 calls) 2048 | 0.15 | 0.28 | 0.21 | 0.30 (secs for 1000 calls) 4096 | 0.16 | 0.30 | 0.26 | 0.33 (secs for 500 calls) 8192 | 0.44 | 0.92 | 0.71 | 0.97 (secs for 500 calls) Multi-dimensional Fast Fourier Transform =================================================== | real input | complex input --------------------------------------------------- size | scipy | Numeric | scipy | Numeric --------------------------------------------------- 100x100 | 0.14 | 0.32 | 0.14 | 0.34 (secs for 100 calls) 1000x100 | 0.31 | 0.42 | 0.31 | 0.39 (secs for 7 calls) 256x256 | 0.41 | 0.45 | 0.39 | 0.42 (secs for 10 calls) 512x512 | 0.54 | 0.59 | 0.56 | 0.59 (secs for 3 calls) ..... Darren's results ================= #METHOD fftw3 (Darren) Fast Fourier Transform ================================================= | real input | complex input ------------------------------------------------- size | scipy | Numeric | scipy | Numeric ------------------------------------------------- 100 | 0.17 | 0.16 | 1.78 | 0.16 (secs for 7000 calls) 1000 | 0.18 | 0.24 | 1.64 | 0.20 (secs for 2000 calls) 256 | 0.34 | 0.32 | 2.87 | 0.31 (secs for 10000 calls) 512 | 0.52 | 0.56 | 4.11 | 0.55 (secs for 10000 calls) 1024 | 0.10 | 0.11 | 0.74 | 0.11 (secs for 1000 calls) 2048 | 0.16 | 0.19 | 1.24 | 0.19 (secs for 1000 calls) 4096 | 0.15 | 0.22 | 1.28 | 0.21 (secs for 500 calls) 8192 | 0.34 | 0.61 | 2.50 | 0.66 (secs for 500 calls) Multi-dimensional Fast Fourier Transform =================================================== | real input | complex input --------------------------------------------------- size | scipy | Numeric | scipy | Numeric --------------------------------------------------- 100x100 | 0.16 | 0.21 | 0.16 | 0.22 (secs for 100 calls) 1000x100 | 0.10 | 0.18 | 0.09 | 0.18 (secs for 7 calls) 256x256 | 0.22 | 0.26 | 0.19 | 0.26 (secs for 10 calls) 512x512 | 0.27 | 0.33 | 0.26 | 0.33 (secs for 3 calls) #METHOD fftw2-2.1.5 (Darren) Fast Fourier Transform ================================================= | real input | complex input ------------------------------------------------- size | scipy | Numeric | scipy | Numeric ------------------------------------------------- 100 | 0.18 | 0.15 | 0.16 | 0.16 (secs for 7000 calls) 1000 | 0.17 | 0.20 | 0.16 | 0.20 (secs for 2000 calls) 256 | 0.32 | 0.32 | 0.28 | 0.32 (secs for 10000 calls) 512 | 0.48 | 0.57 | 0.44 | 0.58 (secs for 10000 calls) 1024 | 0.09 | 0.11 | 0.08 | 0.11 (secs for 1000 calls) 2048 | 0.15 | 0.21 | 0.15 | 0.21 (secs for 1000 calls) 4096 | 0.15 | 0.22 | 0.17 | 0.24 (secs for 500 calls) 8192 | 0.33 | 0.62 | 0.45 | 0.67 (secs for 500 calls) Multi-dimensional Fast Fourier Transform =================================================== | real input | complex input --------------------------------------------------- size | scipy | Numeric | scipy | Numeric --------------------------------------------------- 100x100 | 0.12 | 0.21 | 0.11 | 0.22 (secs for 100 calls) 1000x100 | 0.10 | 0.19 | 0.10 | 0.18 (secs for 7 calls) 256x256 | 0.20 | 0.22 | 0.18 | 0.25 (secs for 10 calls) 512x512 | 0.26 | 0.30 | 0.26 | 0.33 (secs for 3 calls) #METHOD no fftw (Darren) Fast Fourier Transform ================================================= | real input | complex input ------------------------------------------------- size | scipy | Numeric | scipy | Numeric ------------------------------------------------- 100 | 0.15 | 0.15 | 0.16 | 0.16 (secs for 7000 calls) 1000 | 0.16 | 0.20 | 0.20 | 0.19 (secs for 2000 calls) 256 | 0.33 | 0.33 | 0.33 | 0.33 (secs for 10000 calls) 512 | 0.50 | 0.57 | 0.54 | 0.57 (secs for 10000 calls) 1024 | 0.09 | 0.11 | 0.11 | 0.11 (secs for 1000 calls) 2048 | 0.17 | 0.20 | 0.19 | 0.21 (secs for 1000 calls) 4096 | 0.18 | 0.21 | 0.22 | 0.21 (secs for 500 calls) 8192 | 0.38 | 0.63 | 0.72 | 0.65 (secs for 500 calls) Multi-dimensional Fast Fourier Transform =================================================== | real input | complex input --------------------------------------------------- size | scipy | Numeric | scipy | Numeric --------------------------------------------------- 100x100 | 0.20 | 0.22 | 0.19 | 0.21 (secs for 100 calls) 1000x100 | 0.18 | 0.16 | 0.18 | 0.18 (secs for 7 calls) 256x256 | 0.22 | 0.24 | 0.22 | 0.24 (secs for 10 calls) 512x512 | 0.28 | 0.31 | 0.30 | 0.32 (secs for 3 calls)