ExecX

Computes convolution or correlation for multidimensional case with the fixed first operand vector.

Syntax

Fortran:

status = vslsconvexecx(task, y, ystride, z, zstride)

status = vsldconvexecx(task, y, ystride, z, zstride)

status = vslcconvexecx(task, y, ystride, z, zstride)

status = vslzconvexecx(task, y, ystride, z, zstride)

status = vslscorrexecx(task, y, ystride, z, zstride)

status = vsldcorrexecx(task, y, ystride, z, zstride)

status = vslccorrexecx(task, y, ystride, z, zstride)

status = vslzcorrexecx(task, y, ystride, z, zstride)

C:

status = vslsConvExecX(task, y, ystride, z, zstride);

status = vsldConvExecX(task, y, ystride, z, zstride);

status = vslcConvExecX(task, y, ystride, z, zstride);

status = vslzConvExecX(task, y, ystride, z, zstride);

status = vslsCorrExecX(task, y, ystride, z, zstride);

status = vslcCorrExecX(task, y, ystride, z, zstride);

status = vslzCorrExecX(task, y, ystride, z, zstride);

status = vsldCorrExecX(task, y, ystride, z, zstride);

Include Files

The FORTRAN 77 interfaces are specified in the mkl_vsl.f77 include file, the Fortran 90 interfaces are specified in the mkl_vsl.f90 include file, and the C interfaces are specified in the mkl_vsl_functions.h include file.

Input Parameters

Name

Type

Description

task

FORTRAN 77: INTEGER*4 task(2) for vslsconvexecx, vsldconvexecx, vslcconvexecx, vslzconvexecx

INTEGER*4 task(2) for vslscorrexecx, vsldcorrexecx, vslccorrexecx, vslzcorrexecx

Fortran 90: TYPE(VSL_CONV_TASK) for vslsconvexecx, vsldconvexecx, vslcconvexecx, vslzconvexecx

TYPE(VSL_CORR_TASK) for vslscorrexecx, vsldcorrexecx, vslccorrexecx, vslzcorrexecx

C: VSLConvTaskPtr for vslsConvExecX, vsldConvExecX, vslcConvExecX, vslzConvExecX

VSLCorrTaskPtr for vslsCorrExecX, vsldCorrExecX, vslcCorrExecX, vslzCorrExecX

Pointer to the task descriptor.

x ,y

FORTRAN 77: REAL*4 for vslsconvexecx and vslscorrexecx,

REAL*8 for vsldconvexecx and vsldcorrexecx,

COMPLEX*8 forvslcconvexecx and vslccorrexecx,

COMPLEX*16 forvslzconvexecx and vslzcorrexecx

Fortran 90: REAL(KIND=4), DIMENSION(*) for vslsconvexecx and vslscorrexecx,

REAL(KIND=8), DIMENSION(*) for vsldconvexecx and vsldcorrexecx,

COMPLEX(KIND=4), DIMENSION (*) forvslcconvexecx and vslccorrexecx,

COMPLEX(KIND=8), DIMENSION (*) for vslzconvexecx and vslzcorrexecx

C: const float[] for vslsConvExecX and vslsCorrExecX,

const double[] for vsldConvExecX and vsldCorrExecX,

const MKL_Complex8[] for vslcConvExecX and vslcCorrExecX,

const MKL_Complex16[] for vslzConvExecX and vslzCorrExecX

Pointer to array containing input data (for the second operand vector). See Data Allocation for more information.

ystride ,zstride

FORTRAN 77: INTEGER

Fortran 90: INTEGER, DIMENSION (*)

C: const int[]

Strides for input and output data. For more information, see stride parameters.

Output Parameters

Name

Type

Description

z

FORTRAN 77: REAL*4 for vslsconvexecx and vslscorrexecx,

REAL*8 for vsldconvexecx and vsldcorrexecx,

COMPLEX*8 forvslcconvexecx and vslccorrexecx,

COMPLEX*16 forvslzconvexecx and vslzcorrexecx

Fortran 90: REAL(KIND=4), DIMENSION(*) for vslsconvexecx and vslscorrexecx,

REAL(KIND=8), DIMENSION(*) for vsldconvexecx and vsldcorrexecx,

COMPLEX(KIND=4), DIMENSION (*) forvslcconvexecx and vslccorrexecx,

COMPLEX(KIND=8), DIMENSION (*) for vslzconvexecx and vslzcorrexecx

C: const float[] for vslsConvExecX and vslsCorrExecX,

const double[] for vsldConvExecX and vsldCorrExecX,

const MKL_Complex8[] for vslcConvExecX and vslcCorrExecX,

const MKL_Complex16[] for vslzConvExecX and vslzCorrExecX

Pointer to the array that stores output data. See Data Allocation for more information.

status

FORTRAN 77: INTEGER

Fortran 90: INTEGER

C: int

Set to VSL_STATUS_OK if the task is executed successfully or set to non-zero error code otherwise.

Description

Each of the ExecX routines computes convolution or correlation of the data provided by the arrays x and y and then stores the results in the array z. These routines represent a special version of the operation, which assumes that the first operand vector was set on the task construction stage and the task object keeps the pointer to the array x.

Parameters of the operation are read from the task descriptor created previously by a corresponding NewTaskX constructor and pointed to by task. If task is NULL, no operation is done.

Using this form of execution routines is recommended when you need to compute multiple convolutions or correlations with the same data vector in array x against different vectors in array y. This helps improve performance by eliminating unnecessary overhead in repeated computation of intermediate data required for the operation.


Submit feedback on this help topic

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