Visible to Intel only — GUID: GUID-0507F1A6-57D2-4900-A48E-65A07181573C
Visible to Intel only — GUID: GUID-0507F1A6-57D2-4900-A48E-65A07181573C
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 = vsldcorrexecx(task, y, ystride, z, zstride)
status = vslccorrexecx(task, y, ystride, z, zstride)
status = vslzcorrexecx(task, y, ystride, z, zstride)
Include Files
- mkl.fi, mkl_vsl.f90
Input Parameters
Name |
Type |
Description |
---|---|---|
task |
INTEGER*4 task(2) for vslscorrexecx, vsldcorrexecx, vslccorrexecx, vslzcorrexecx TYPE(VSL_CONV_TASK) for vslsconvexecx, vsldconvexecx, vslcconvexecx, vslzconvexecx TYPE(VSL_CORR_TASK) for vslscorrexecx, vsldcorrexecx, vslccorrexecx, vslzcorrexecx VSLCorrTaskPtr for vslsCorrExecX, vsldCorrExecX, vslcCorrExecX, vslzCorrExecX |
Pointer to the task descriptor. |
x ,y |
REAL*8 for vsldconvexecx and vsldcorrexecx, COMPLEX*8 forvslcconvexecx and vslccorrexecx, COMPLEX*16 forvslzconvexecx and vslzcorrexecx REAL(KIND=4), DIMENSION(*) for vslsconvexecx and vslscorrexecx, REAL(KIND=8), DIMENSION(*) for vsldconvexecx and vsldcorrexecx, COMPLEX(KIND=4), DIMENSION (*) forvslcconvexecx and vslccorrexecx, COMPLEX(KIND=8), DIMENSION (*) for vslzconvexecx and vslzcorrexecx |
Pointer to array containing input data (for the second operand vector). See Data Allocation for more information. |
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 vsldconvexecx and vsldcorrexecx, COMPLEX*8 forvslcconvexecx and vslccorrexecx, COMPLEX*16 forvslzconvexecx and vslzcorrexecx REAL(KIND=4), DIMENSION(*) for vslsconvexecx and vslscorrexecx, REAL(KIND=8), DIMENSION(*) for vsldconvexecx and vsldcorrexecx, COMPLEX(KIND=4), DIMENSION (*) forvslcconvexecx and vslccorrexecx, COMPLEX(KIND=8), DIMENSION (*) for vslzconvexecx and vslzcorrexecx |
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 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.