kml_fft_mpi_plan_many_transpose
Assume that there is an n0 x n1 array, which is distributed in blocks along the n0 dimension in row-major order. Convert it into an n1 x n0 array with block distribution in the n1 dimension. More generally, the transposition of a numerical tuple can be performed, with the block sizes of the input and output specified by the user.
Interface Definition
C interface:
kml_fft_plan kml_fft_mpi_plan_many_transpose (ptrdiff_t n0, ptrdiff_t n1, ptrdiff_t howmany, ptrdiff_t block0, ptrdiff_t block1, double *in, double *out, MPI_Comm comm, unsigned flags);
kml_fft_plan kml_fftf_mpi_plan_many_transpose (ptrdiff_t n0, ptrdiff_t n1, ptrdiff_t howmany, ptrdiff_t block0, ptrdiff_t block1, float *in, float *out, MPI_Comm comm, unsigned flags);
Return Value
The function returns a structure pointer of the kml_fft(f)_plan type. This object can be passed to the kml_fft(f/h)_execute function as a parameter to perform FFT on the current input and output.
If this function returns a non-null pointer, the plan has been successfully created. Otherwise, the plan fails to be created.
Parameters
Parameter |
Data Type |
Description |
Input/Output |
|---|---|---|---|
n0 |
ptrdiff_t |
Inputs the size of the first dimension in the FFT array. The constraint is n0 ≥ 1. |
Input |
n1 |
ptrdiff_t |
Inputs the size of the second dimension in the FFT array. The constraint is n1 ≥ 1. |
Input |
howmany |
int |
Indicates how many transforms are needed. |
Input |
block0 |
ptrdiff_t |
Block size in the n0 dimension. |
Input |
block1 |
ptrdiff_t |
Block size in the n1 dimension. |
Input |
in |
|
Inputs the data to be transformed. |
Input |
out |
|
Outputs the data generated using FFT. |
Output |
comm |
MPI_Comm |
MPI communicator handle. |
Input |
flags |
unsigned int |
For a transposed plan, these flags indicate that the output and/or the input are/is partially transposed. |
Input |
Dependencies
C: "kfft-mpi.h"