fftw3: Real-to-Real Transform Kinds

 
 4.3.6 Real-to-Real Transform Kinds
 ----------------------------------
 
 FFTW currently supports 11 different r2r transform kinds, specified by
 one of the constants below.  For the precise definitions of these
 transforms, see SeeWhat FFTW Really Computes.  For a more
 colloquial introduction to these transform kinds, see SeeMore DFTs of
 Real Data.
 
    For dimension of size 'n', there is a corresponding "logical"
 dimension 'N' that determines the normalization (and the optimal
 factorization); the formula for 'N' is given for each kind below.  Also,
 with each transform kind is listed its corrsponding inverse transform.
 FFTW computes unnormalized transforms: a transform followed by its
 inverse will result in the original data multiplied by 'N' (or the
 product of the 'N''s for each dimension, in multi-dimensions).
 
    * 'FFTW_R2HC' computes a real-input DFT with output in "halfcomplex"
      format, i.e.  real and imaginary parts for a transform of size 'n'
      stored as: r0, r1, r2, r(n/2), i((n+1)/2-1), ..., i2, i1 (Logical
      'N=n', inverse is 'FFTW_HC2R'.)
 
    * 'FFTW_HC2R' computes the reverse of 'FFTW_R2HC', above.  (Logical
      'N=n', inverse is 'FFTW_R2HC'.)
 
    * 'FFTW_DHT' computes a discrete Hartley transform.  (Logical 'N=n',
      inverse is 'FFTW_DHT'.)
 
    * 'FFTW_REDFT00' computes an REDFT00 transform, i.e.  a DCT-I.
      (Logical 'N=2*(n-1)', inverse is 'FFTW_REDFT00'.)
 
    * 'FFTW_REDFT10' computes an REDFT10 transform, i.e.  a DCT-II
      (sometimes called "the" DCT). (Logical 'N=2*n', inverse is
      'FFTW_REDFT01'.)
 
    * 'FFTW_REDFT01' computes an REDFT01 transform, i.e.  a DCT-III
      (sometimes called "the" IDCT, being the inverse of DCT-II).
      (Logical 'N=2*n', inverse is 'FFTW_REDFT=10'.)
 
    * 'FFTW_REDFT11' computes an REDFT11 transform, i.e.  a DCT-IV.
      (Logical 'N=2*n', inverse is 'FFTW_REDFT11'.)
 
    * 'FFTW_RODFT00' computes an RODFT00 transform, i.e.  a DST-I.
      (Logical 'N=2*(n+1)', inverse is 'FFTW_RODFT00'.)
 
    * 'FFTW_RODFT10' computes an RODFT10 transform, i.e.  a DST-II.
      (Logical 'N=2*n', inverse is 'FFTW_RODFT01'.)
 
    * 'FFTW_RODFT01' computes an RODFT01 transform, i.e.  a DST-III.
      (Logical 'N=2*n', inverse is 'FFTW_RODFT=10'.)
 
    * 'FFTW_RODFT11' computes an RODFT11 transform, i.e.  a DST-IV.
      (Logical 'N=2*n', inverse is 'FFTW_RODFT11'.)