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 (See
 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 (SeeInstallation 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.