fftw_plan fftw_plan_many_dft_r2c(int rank, const int *n, int howmany, double *in, const int *inembed, int istride, int idist, fftw_complex *out, const int *onembed, int ostride, int odist, unsigned flags); fftw_plan fftw_plan_many_dft_c2r(int rank, const int *n, int howmany, fftw_complex *in, const int *inembed, int istride, int idist, double *out, const int *onembed, int ostride, int odist, unsigned flags);
fftw_plan_many_dft, these two functions add
dist parameters to the
fftw_plan_dft_c2r functions, but
otherwise behave the same as the basic interface.
The interpretation of
the same as for
fftw_plan_many_dft, above. Note that the
dist for the real array are in units of
double, and for the complex array are in units of
nembed parameter is
NULL, it is interpreted as what
it would be in the basic interface, as described in Real-data DFT Array Format. That is, for the complex array the size is assumed to be
the same as
n, but with the last dimension cut roughly in half.
For the real array, the size is assumed to be
n if the transform
is out-of-place, or
n with the last dimension “padded” if the
transform is in-place.
nembed parameter is non-
NULL, it is interpreted as
the physical size of the corresponding array, in row-major order, just
fftw_plan_many_dft. In this case, each dimension of
nembed should be
>= what it would be in the basic
interface (e.g. the halved or padded
onembed are not used after
this function returns. You can safely free or reuse them.