Developer Reference for Intel® oneAPI Math Kernel Library for Fortran

ID 766686
Date 11/07/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

vslConvExec/vslCorrExec

Computes convolution or correlation for multidimensional case.

Syntax

status = vslsconvexec(task, x, xstride, y, ystride, z, zstride)

status = vsldconvexec(task, x, xstride, y, ystride, z, zstride)

status = vslcconvexec(task, x, xstride, y, ystride, z, zstride)

status = vslzconvexec(task, x, xstride, y, ystride, z, zstride)

status = vslscorrexec(task, x, xstride, y, ystride, z, zstride)

status = vsldcorrexec(task, x, xstride, y, ystride, z, zstride)

status = vslccorrexec(task, x, xstride, y, ystride, z, zstride)

status = vslzcorrexec(task, x, xstride, y, ystride, z, zstride)

Include Files

  • mkl.fi, mkl_vsl.f90

Input Parameters

Name

Type

Description

task

INTEGER*4 task(2) for vslscorrexec, vsldcorrexec, vslccorrexec, vslzcorrexec

TYPE(VSL_CONV_TASK) for vslsconvexec, vsldconvexec, vslcconvexec, vslzconvexec

TYPE(VSL_CORR_TASK) for vslscorrexec, vsldcorrexec, vslccorrexec, vslzcorrexec

VSLCorrTaskPtr for vslsCorrExec, vsldCorrExec, vslcCorrExec, vslzCorrExec

Pointer to the task descriptor

x, y

REAL*8 for vsldconvexec and vsldcorrexec,

COMPLEX*8 forvslcconvexec and vslccorrexec,

COMPLEX*16 forvslzconvexec and vslzcorrexec

REAL(KIND=4), DIMENSION(*) for vslsconvexec and vslscorrexec,

REAL(KIND=8), DIMENSION(*) for vsldconvexec and vsldcorrexec,

COMPLEX(KIND=4), DIMENSION (*) forvslcconvexec and vslccorrexec,

COMPLEX(KIND=8), DIMENSION (*) for vslzconvexec and vslzcorrexec

Pointers to arrays containing input data. See Data Allocation for more information.

xstride, ystride, zstride

INTEGER, DIMENSION (*)

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

Output Parameters

Name

Type

Description

z

REAL*8 for vsldconvexec and vsldcorrexec,

COMPLEX*8 forvslcconvexec and vslccorrexec,

COMPLEX*16 forvslzconvexec and vslzcorrexec

REAL(KIND=4), DIMENSION(*) for vslsconvexec and vslscorrexec,

REAL(KIND=8), DIMENSION(*) for vsldconvexec and vsldcorrexec,

COMPLEX(KIND=4), DIMENSION (*) forvslcconvexec and vslccorrexec,

COMPLEX(KIND=8), DIMENSION (*) for vslzconvexec and vslzcorrexec

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

status

INTEGER

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

Description

Each of the vslConvExec/vslCorrExec routines computes convolution or correlation of the data provided by the arrays x and y and then stores the results in the array z. Parameters of the operation are read from the task descriptor created previously by a corresponding vslConvNewTask/vslCorrNewTask constructor and pointed to by task. If task is NULL, no operation is done.

The stride parameters xstride, ystride, and zstride specify the physical location of the input and output data in the arrays x, y, and z, respectively. In a one-dimensional case, stride is an interval between locations of consecutive elements of the array. For example, if the value of the parameter zstride is s, then only every sth element of the array z will be used to store the output data. The stride value must be positive or negative but not zero.