Developer Reference

  • 2021.1
  • 12/04/2020
  • Public Content
Contents

vslConvExecX
/
vslCorrExecX

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

Syntax

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
  • mkl.h
Input Parameters
Name
Type
Description
task
VSLConvTaskPtr
for
vslsConvExecX
,
vsldConvExecX
,
vslcConvExecX
,
vslzConvExecX
VSLCorrTaskPtr
for
vslsCorrExecX
,
vsldCorrExecX
,
vslcCorrExecX
,
vslzCorrExecX
Pointer to the task descriptor.
x
,
y
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
const int[]
Strides for input and output data.
For more information, see stride parameters.
Output Parameters
Name
Type
Description
z
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
int
Set to
VSL_STATUS_OK
if the task is executed successfully or set to non-zero error code otherwise.
Description
Each of the
vslConvExecX
/
vslCorrExecX
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
vslConvNewTaskX
/
vslCorrNewTaskX
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.

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.