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