fftw3: Precision
4.1.2 Precision
---------------
You can install single and long-double precision versions of FFTW, which
replace 'double' with 'float' and 'long double', respectively (
Installation and Customization). To use these interfaces, you:
* Link to the single/long-double libraries; on Unix, '-lfftw3f' or
'-lfftw3l' instead of (or in addition to) '-lfftw3'. (You can link
to the different-precision libraries simultaneously.)
* Include the _same_ '<fftw3.h>' header file.
* Replace all lowercase instances of 'fftw_' with 'fftwf_' or
'fftwl_' for single or long-double precision, respectively.
('fftw_complex' becomes 'fftwf_complex', 'fftw_execute' becomes
'fftwf_execute', etcetera.)
* Uppercase names, i.e. names beginning with 'FFTW_', remain the
same.
* Replace '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).
We also support using the nonstandard '__float128'
quadruple-precision type provided by recent versions of 'gcc' on 32- and
64-bit x86 hardware (Installation and Customization). To use
this type, link with '-lfftw3q -lquadmath -lm' (the 'libquadmath'
library provided by 'gcc' is needed for quadruple-precision
trigonometric functions) and use 'fftwq_' identifiers.