ComputeForward

Computes the forward FFT.

Syntax

Fortran:

status = DftiComputeForward( desc_handle, x_inout )

status = DftiComputeForward( desc_handle, x_in, y_out )

status = DftiComputeForward( desc_handle, xre_inout, xim_inout )

status = DftiComputeForward( desc_handle, xre_in, xim_in, yre_out, yim_out )

C:

status = DftiComputeForward(desc_handle, x_inout);

status = DftiComputeForward(desc_handle, x_in, y_out);

status = DftiComputeForward(desc_handle, xre_inout, xim_inout);

status = DftiComputeForward(desc_handle, xre_in, xim_in, yre_out, yim_out);

Input Parameters

Name

Type

Description

desc_handle

FORTRAN: DFTI_DESCRIPTOR

C: DFTI_DESCRIPTOR_HANDLE

FFT Descriptor.

x_inout, x_in

FORTRAN: Array REAL(4), DIMENSION(*)

C: Array of type float or double depending on the precision of the transform, specified in the DFTI_PRECISION configuration setting.

Data to be transformed in case of a real forward domain, specified in the DFTI_FORWARD_DOMAIN configuration setting.

xre_inout, xim_inout, xre_in, xim_in

FORTRAN: Array REAL(4), DIMENSION(*)

C: Array of type float or double depending on the precision of the transform.

Real and imaginary parts of the data to be transformed in case of a complex forward domain, specified in the DFTI_FORWARD_DOMAIN configuration setting.

The suffix in parameter names corresponds to the value of the configuration parameter DFTI_PLACEMENT as follows:

Output Parameters

Name

Type

Description

y_out

FORTRAN: Array REAL(4), DIMENSION(*)

C: Array of type float or double depending on the precision of the transform.

The transformed data in case of a real backward domain, determined by the DFTI_FORWARD_DOMAIN configuration setting.

xre_inout, xim_inout, yre_out, yim_out

FORTRAN: Array REAL(4), DIMENSION(*)

C: Array of type float or double depending on the precision of the transform.

Real and imaginary parts of the transformed data in case of a complex backward domain, determined by the DFTI_FORWARD_DOMAIN configuration setting.

status

FORTRAN: INTEGER

C: MKL_LONG

Function completion status.

The suffix in parameter names corresponds to the value of the configuration parameter DFTI_PLACEMENT as follows:

Include Files

The Fortran interface is specified in the mkl_dfti.f90 include file and the C interface is specified in the mkl_dfti.h include file.

Description

The DftiComputeForward function accepts the descriptor handle parameter and one or more data parameters. Provided the descriptor is configured and committed successfully, this function computes the forward FFT, that is, the transform with the minus sign in the exponent, δ = -1.

The number and types of the data parameters that the function requires may vary depending on the configuration of the descriptor. This variation is accommodated by the variable parameters in C and the generic interface in Fortran. The generic Fortran interface to the function is based on a set of specific functions. These functions can check for inconsistency between the required and actual number of parameters. However, the specific functions disregard the type of the actual parameters and instead use the interpretation defined in the descriptor by configuration parameters FTI_FORWARD_DOMAIN, DFTI_INPUT_STRIDES, DFTI_INPUT_DISTANCE, and so on.

The function returns the zero status when completes successfully. See Status Checking Functions for more information on the returned status.

Interface and Prototype

 
! Fortran interface.
! 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 DftiComputeForward
 
  FUNCTION some_actual_function_1(desc,sSrcDst)
    INTEGER some_actual_function_1
    REAL(4), INTENT(INOUT), DIMENSION(*) :: sSrcDst
    ...
  END FUNCTION some_actual_function_1
 
  FUNCTION some_actual_function_2(desc,cSrcDst)
    INTEGER some_actual_function_2
    COMPLEX(8), INTENT(INOUT), DIMENSION(*) :: cSrcDst
    ...
  END FUNCTION some_actual_function_2
 
  FUNCTION some_actual_function_3(desc,sSrcDstRe,sSrcDstIm)
    INTEGER some_actual_function_3
    REAL(4), INTENT(INOUT), DIMENSION(*) :: sSrcDstRe
    REAL(4), INTENT(INOUT), DIMENSION(*) :: sSrcDstIm
    ...
  END FUNCTION some_actual_function_3
  ...
END INTERFACE DftiComputeForward
 

Fortran interface requires that the data parameters have the type of assumed-size rank-1 array, even for multidimensional transforms. The implementations of the FFT interface require the data stored linearly in memory with a regular "stride" pattern capable to describe multidimensional array layout (discussed more fully in DFTI_INPUT_STRIDES, DFTI_OUTPUT_STRIDES, see also [3]), and the function requires the data parameters refer to the first element of the data. Consequently, the data arrays should be specified with the DIMENSION(*) attribute and the storage associated with the actual multidimensional arrays via the EQUIVALENCE statement.

 
 /* C prototype */
 MKL_LONG DftiComputeForward( DFTI_DESCRIPTOR_HANDLE, void*, ... ); 

See Also


Submit feedback on this help topic

Copyright © 1994 - 2011, Intel Corporation. All rights reserved.