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:r

(Logical_{0}, r_{1}, r_{2}, ..., r_{n/2}, i_{(n+1)/2-1}, ..., i_{2}, i_{1}`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`

.)