GFourier and FFTW

Calculating the Fourier Transform and the Inverse Fourier Transform of large images (or even of small images with sizes which are not power of two) can take a long period of time and demands a lot of memory. GFourier incorporates its own routines to calculate those transforms, but they are not efficient, neither in time nor in memory.

There are some specialized libraries that provide better algorithms for this purpose. After trying several of those libraries, I decided to use FFTW, because of its efficiency and portability; it claims to be the 'Fastest Fourier Transform in the West'. Gfourier will be much faster if it is compiled with support for that library; it will use less memory, too. I am not going to enhance the routines used by GFourier, because I use FFTW; I cannot think of any situation where those routines may be really needed: if you can compile GFourier, you surely can install FFTW. It really does deserve the effort.

I have not been able to build a configure script that will auto-detect if FFTW is present in your computer; to compile Gfourier with support for FFTW, use the '--enable-fftw' option.

You can also use the '--enable-fftw_mesure' option, to enable the MEASURE option of FFTW. When this option is used, FFTW will measure which is the fastest algorithm to calculate the transform of a particular image, instead of trying to guess it. This produces a slight delay for the first image, but subsequent transforms are faster.

Those measures may be saved on disk and used on your next session with GFourier. This way, FFTW does not need to repeat the same test for similar images. If the '--enable-fftw_wisdom' option is used, GFourier will create a '~/.gfourier_wisdom' file containing such information.

For more information about configure options, try './configure --help' or go to the Installation page. For more information about FFTW's options, read the supplied documentation.

FFTW was written by Matteo Frigo & Steven G. Johnson and is Copyright (c) Massachusetts Institute of Technology; for more information about FFTW, please visit:

WARNING: Propietary routines in GFourier are deprecated, as I see no reason not to use FFTW. Further versions of GFourier will _need_ FFTW. If there is any reason why you cannot use FFTW, please tell me.

Prev Index Next