vslConvExecX/vslCorrExecX
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.