You can install single and long-double precision versions of FFTW,
which replace double with float and long double,
respectively (see Installation and Customization). To use these
interfaces, you:
-lfftw3f or
-lfftw3l instead of (or in addition to) -lfftw3. (You
can link to the different-precision libraries simultaneously.)
<fftw3.h> header file.
fftwl_ for single or long-double precision, respectively.
(fftw_complex becomes fftwf_complex, fftw_execute
becomes fftwf_execute, etcetera.)
double with float or long double for
subroutine parameters.
Depending upon your compiler and/or hardware, long double may not
be any more precise than double (or may not be supported at all,
although it is standard in C99).