int im_fwfft(in, out)
IMAGE *in, *out;
int im_invfft(in, out)
IMAGE *in, *out;
int im_invfftr(in, out)
IMAGE *in, *out;
If VIPS has been built with support for libfftw, a high-speed FFT library, then fftwnd_one() is used to compute the transform. This produces a double precision complex result. The first transformation at a particular image size will be very slow as libfftw optimises itself for your machine, but subsequent transforms of images of that size are extremely fast. Unfortunately, libfftw does not have good out-of-memory behaviour. If you try to transform a very large image, your program will exit abruptly.
If VIPS has not been built with libfftw support, VIPS uses its own fft routines. These are rather slow, are single precision only, and can only transform images whose sides are a power of two.
im_invfft() performs the reverse transform. The input image must be complex, the output is always complex. The image may have any number of bands.
Again, if libfftw was present when VIPS was compiled, that library is used to calculate the transform.
im_invfftr() performs the reverse transform. The input image must be complex, the output is always real. The image may have any number of bands. It is about 2 x faster than im_invfft().
Again, if libfftw was present when VIPS was compiled, that library is used to calculate the transform.