Fourier Transform Functions
- Allocate a fresh descriptor for the problem with a call to theDftiCreateDescriptororDftiCreateDescriptorDMfunction. The descriptor captures the configuration of the transform, such as the dimensionality (or rank), sizes, number of transforms, memory layout of the input/output data (defined by strides), and scaling factors. Many of the configuration settings are assigned default values in this call which you might need to modify in your application.
- Optionally adjust the descriptor configuration with a call to theDftiSetValueorDftiSetValueDMfunction as needed. Typically, you must carefully define the data storage layout for an FFT or the data distribution among processes for a Cluster FFT. The configuration settings of the descriptor, such as the default values, can be obtained with theDftiGetValueorDftiGetValueDMfunction.
- Commit the descriptor with a call to theDftiCommitDescriptororDftiCommitDescriptorDMfunction, that is, make the descriptor ready for the transform computation. Once the descriptor is committed, the parameters of the transform, such as the type and number of transforms, strides and distances, the type and storage layout of the data, and so on, are "frozen" in the descriptor.
- Compute the transform with a call to theDftiComputeForward/DftiComputeBackwardorDftiComputeForwardDM/DftiComputeBackwardDMfunctions as many times as needed. Because the descriptor is defined and committed separately, all that the compute functions do is take the input and output data and compute the transform as defined. To modify any configuration parameters for another call to a compute function, useDftiSetValuefollowed byDftiCommitDescriptor(DftiSetValueDMfollowed byDftiCommitDescriptorDM) or create and commit another descriptor.