cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: FFTW 3.3.8: Real-data DFTs cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167:
cannam@167:

cannam@167: Next: , Previous: , Up: Basic Interface   [Contents][Index]

cannam@167:
cannam@167:
cannam@167: cannam@167:

4.3.3 Real-data DFTs

cannam@167: cannam@167:
cannam@167:
fftw_plan fftw_plan_dft_r2c_1d(int n0,
cannam@167:                                double *in, fftw_complex *out,
cannam@167:                                unsigned flags);
cannam@167: fftw_plan fftw_plan_dft_r2c_2d(int n0, int n1,
cannam@167:                                double *in, fftw_complex *out,
cannam@167:                                unsigned flags);
cannam@167: fftw_plan fftw_plan_dft_r2c_3d(int n0, int n1, int n2,
cannam@167:                                double *in, fftw_complex *out,
cannam@167:                                unsigned flags);
cannam@167: fftw_plan fftw_plan_dft_r2c(int rank, const int *n,
cannam@167:                             double *in, fftw_complex *out,
cannam@167:                             unsigned flags);
cannam@167: 
cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167:

Plan a real-input/complex-output discrete Fourier transform (DFT) in cannam@167: zero or more dimensions, returning an fftw_plan (see Using Plans). cannam@167:

cannam@167:

Once you have created a plan for a certain transform type and cannam@167: parameters, then creating another plan of the same type and parameters, cannam@167: but for different arrays, is fast and shares constant data with the cannam@167: first plan (if it still exists). cannam@167:

cannam@167:

The planner returns NULL if the plan cannot be created. A cannam@167: non-NULL plan is always returned by the basic interface unless cannam@167: you are using a customized FFTW configuration supporting a restricted cannam@167: set of transforms, or if you use the FFTW_PRESERVE_INPUT flag cannam@167: with a multi-dimensional out-of-place c2r transform (see below). cannam@167:

cannam@167: cannam@167:

Arguments

cannam@167: cannam@167: cannam@167:

The inverse transforms, taking complex input (storing the non-redundant cannam@167: half of a logically Hermitian array) to real output, are given by: cannam@167:

cannam@167:
cannam@167:
fftw_plan fftw_plan_dft_c2r_1d(int n0,
cannam@167:                                fftw_complex *in, double *out,
cannam@167:                                unsigned flags);
cannam@167: fftw_plan fftw_plan_dft_c2r_2d(int n0, int n1,
cannam@167:                                fftw_complex *in, double *out,
cannam@167:                                unsigned flags);
cannam@167: fftw_plan fftw_plan_dft_c2r_3d(int n0, int n1, int n2,
cannam@167:                                fftw_complex *in, double *out,
cannam@167:                                unsigned flags);
cannam@167: fftw_plan fftw_plan_dft_c2r(int rank, const int *n,
cannam@167:                             fftw_complex *in, double *out,
cannam@167:                             unsigned flags);
cannam@167: 
cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: cannam@167:

The arguments are the same as for the r2c transforms, except that the cannam@167: input and output data formats are reversed. cannam@167:

cannam@167:

FFTW computes an unnormalized transform: computing an r2c followed by a cannam@167: c2r transform (or vice versa) will result in the original data cannam@167: multiplied by the size of the transform (the product of the logical cannam@167: dimensions). cannam@167: cannam@167: An r2c transform produces the same output as a FFTW_FORWARD cannam@167: complex DFT of the same input, and a c2r transform is correspondingly cannam@167: equivalent to FFTW_BACKWARD. For more information, see What FFTW Really Computes. cannam@167:

cannam@167:
cannam@167:
cannam@167:

cannam@167: Next: , Previous: , Up: Basic Interface   [Contents][Index]

cannam@167:
cannam@167: cannam@167: cannam@167: cannam@167: cannam@167: