Developer Reference for Intel® oneAPI Math Kernel Library for Fortran
vslconvexectaskx1d / vslcorrexectaskx1d
Computes convolution or correlation for one-dimensional case with the fixed first operand vector.
Syntax
status = vslsconvexecx1d(task, y, ystride, z, zstride)
status = vsldconvexecx1d(task, y, ystride, z, zstride)
status = vslcconvexecx1d(task, y, ystride, z, zstride)
status = vslzconvexecx1d(task, y, ystride, z, zstride)
status = vslscorrexecx1d(task, y, ystride, z, zstride)
status = vsldcorrexecx1d(task, y, ystride, z, zstride)
status = vslccorrexecx1d(task, y, ystride, z, zstride)
status = vslzcorrexecx1d(task, y, ystride, z, zstride)
Include Files
mkl.fi, mkl_vsl.f90
Input Parameters
Name |
Type |
Description |
|---|---|---|
task |
Fortran 77: INTEGER*4 task(2) for vslscorrexecx1d, vsldcorrexecx1d, vslccorrexecx1d, vslzcorrexecx1d and vslsconvexecx1d, vsldconvexecx1d, vslcconvexecx1d, vslzconvexecx1d Fortran 90: TYPE(VSL_CONV_TASK) for vslsconvexecx1d, vsldconvexecx1d, vslcconvexecx1d, vslzconvexecx1d Fortran 90: TYPE(VSL_CORR_TASK) for vslscorrexecx1d, vsldcorrexecx1d, vslccorrexecx1d, vslzcorrexecx1d |
Pointer to the task descriptor. |
x, y |
Fortran 77: REAL*4 for vslsconvexecx1d and vslscorrexecx1d, Fortran 77: REAL*8 for vsldconvexecx1d and vsldcorrexecx1d, Fortran 77: COMPLEX*8 for vslcconvexecx1d and vslccorrexecx1d, Fortran 77: COMPLEX*16 for vslzconvexecx1d and vslzcorrexecx1d Fortran 90: REAL(KIND=4), DIMENSION(*) for vslsconvexecx1d and vslscorrexecx1d, Fortran 90: REAL(KIND=8), DIMENSION(*) for vsldconvexecx1d and vsldcorrexecx1d, Fortran 90: COMPLEX(KIND=4), DIMENSION (*) for vslcconvexecx1d and vslccorrexecx1d, Fortran 90: COMPLEX(KIND=8), DIMENSION (*) for vslzconvexecx1d and vslzcorrexecx1d |
Pointer to array containing input data (for the second operand vector). See Data Allocation for more information. |
ystride, zstride |
INTEGER |
Strides for input and output data. For more information, see the stride parameters in vslconvnewtaskx/vslcorrnewtaskx. |
Output Parameters
Name |
Type |
Description |
|---|---|---|
z |
Fortran 77: REAL*4 for vslsconvexecx1d and vslscorrexecx1d, Fortran 77: REAL*8 for vsldconvexecx1d and vsldcorrexecx1d, Fortran 77: COMPLEX*8 for vslcconvexecx1d and vslccorrexecx1d, Fortran 77: COMPLEX*16 for vslzconvexecx1d and vslzcorrexecx1d Fortran 90: REAL(KIND=4), DIMENSION(*) for vslsconvexecx1d and vslscorrexecx1d, Fortran 90: REAL(KIND=8), DIMENSION(*) for vsldconvexecx1d and vsldcorrexecx1d, Fortran 90: COMPLEX(KIND=4), DIMENSION (*) for vslcconvexecx1d and vslccorrexecx1d, Fortran 90: COMPLEX(KIND=8), DIMENSION (*) for vslzconvexecx1d and vslzcorrexecx1d |
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 vslconvexectaskx1d / vslcorrexectaskx1d routines computes convolution or correlation of one-dimensional (assuming that dims =1) 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 expects that the first operand vector was set on the task construction stage.
Parameters of the operation are read from the task descriptor created previously by a corresponding vslconvnewtaskx1d/vslcorrnewtaskx1d 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 one-dimensional 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.