Developer Reference for Intel® oneAPI Math Kernel Library for C

ID 766684
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.h

Input Parameters

Name

Type

Description

task

VSLConvTaskPtr for vslsConvExec, vsldConvExec, vslcConvExec, vslzConvExec

VSLCorrTaskPtr for vslsCorrExec, vsldCorrExec, vslcCorrExec, vslzCorrExec

Pointer to the task descriptor

x, y

const float[] for vslsConvExec and vslsCorrExec,

const double[] for vsldConvExec and vsldCorrExec,

const MKL_Complex8[] for vslcConvExec and vslcCorrExec,

const MKL_Complex16[] for vslzConvExec and vslzCorrExec

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

xstride, ystride, zstride

const int[]

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

Output Parameters

Name

Type

Description

z

const float[] for vslsConvExec and vslsCorrExec,

const double[] for vsldConvExec and vsldCorrExec,

const MKL_Complex8[] for vslcConvExec and vslcCorrExec,

const MKL_Complex16[] for vslzConvExec and vslzCorrExec

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

status

int

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.