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 What FFTW Really Computes. For a more
colloquial introduction to these transform kinds, see More 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'.)