Developer Reference

  • 0.9
  • 09/09/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

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804