Visible to Intel only — GUID: GUID-2E31EB2D-15B4-481B-B40F-FE7B6CDDCEDF
Visible to Intel only — GUID: GUID-2E31EB2D-15B4-481B-B40F-FE7B6CDDCEDF
DftiCreateDescriptor
Allocates the descriptor data structure and initializes it with default configuration values.
status = DftiCreateDescriptor( desc_handle, precision, forward_domain, dimension, length )
- mkl_dfti.f90
Name |
Type |
Description |
---|---|---|
precision |
INTEGER |
Precision of the transform: DFTI_SINGLE or DFTI_DOUBLE. |
forward_domain |
INTEGER |
Forward domain of the transform: DFTI_COMPLEX or DFTI_REAL. |
dimension |
INTEGER |
Dimension of the transform. |
length |
Array INTEGER, DIMENSION(*) otherwise. |
Length of the transform for a one-dimensional transform. Lengths of each dimension for a multi-dimensional transform. |
Name |
Type |
Description |
---|---|---|
desc_handle |
DFTI_DESCRIPTOR |
FFT descriptor. |
status |
INTEGER |
Function completion status. |
This function allocates memory for the descriptor data structure and instantiates it with all the default configuration settings for the precision, forward domain, dimension, and length of the desired transform. Because memory is allocated dynamically, the result is actually a pointer to the created descriptor. This function is slightly different from the "initialization" function that can be found in software packages or libraries that implement more traditional algorithms for computing an FFT. This function does not perform any significant computational work such as computation of twiddle factors. The function DftiCommitDescriptor does this work after the function DftiSetValue has set values of all necessary parameters.
The function returns zero when it completes successfully. See Status Checking Functions for more information on the returned status.
! Note that the body provided below only illustrates the list of different ! parameters and the types of dummy parameters. You can rely only on the function ! name following keyword INTERFACE. For the precise definition of the ! interface, see the include/mkl_dfti.f90 file in the Intel MKL directory. INTERFACE DftiCreateDescriptor FUNCTION some_actual_function_1d(desc, precision, domain, dim, length) INTEGER :: some_actual_function_1d ... INTEGER, INTENT(IN) :: length END FUNCTION some_actual_function_1d FUNCTION some_actual_function_md(desc, precision, domain, dim, lengths) INTEGER :: some_actual_function_md ... INTEGER, INTENT(IN), DIMENSION(*) :: lengths END FUNCTION some_actual_function_md ... END INTERFACE DftiCreateDescriptor
Note that the function is overloaded: the actual parameter for the formal parameter length can be a scalar or a rank-one array.
The function is also overloaded with respect to the type of the precision parameter in order to provide an option of using a precision-specific function for the generic name. Using more specific functions can reduce the size of statically linked executable for the applications using only single-precision FFTs or only double-precision FFTs. To use specific functions, change the "USE MKL_DFTI" statement in your program unit to one of the following:
USE MKL_DFTI, FORGET=>DFTI_SINGLE, DFTI_SINGLE=>DFTI_SINGLE_R
USE MKL_DFTI, FORGET=>DFTI_DOUBLE, DFTI_DOUBLE=>DFTI_DOUBLE_R
where the name "FORGET" can be replaced with any name that is not used in the program unit.