Developer Reference for Intel® oneAPI Math Kernel Library for C

ID 766684
Date 10/31/2024
Public
Document Table of Contents

Convolution and Correlation Parameters

Basic parameters held by the task descriptor are assigned values when the task object is created, copied, or modified by task editors. Parameters of the correlation or convolution task are initially set up by task constructors when the task object is created. Parameter changes or additional settings are made by task editors. More parameters which define location of the data being convolved need to be specified when the task execution routine is invoked.

According to how the parameters are passed or assigned values, all of them can be categorized as either explicit (directly passed as routine parameters when a task object is created or executed) or optional (assigned some default or implicit values during task construction).

The following table lists all applicable parameters used in the Intel® oneAPI Math Kernel Library (oneMKL) convolution and correlation API.

Convolution and Correlation Task Parameters

Name

Category

Type

Default Value Label

Description

job

explicit

integer

Implied by the constructor name

Specifies whether the task relates to convolution or correlation

type

explicit

integer

Implied by the constructor name

Specifies the type (real or complex) of the input/output data. Set to real in the current version.

precision

explicit

integer

Implied by the constructor name

Specifies precision (single or double) of the input/output data to be provided in arrays x,y,z.

mode

explicit

integer

None

Specifies whether the convolution/correlation computation should be done via Fourier transforms, or by a direct method, or by automatically choosing between the two. See SetMode for the list of named constants for this parameter.

method

optional

integer

"auto"

Hints at a particular computation method if several methods are available for the given mode. Setting this parameter to "auto" means that software will choose the best available method.

Users may pass the NULL pointer instead of either or all of the parameters xstride, ystride, or zstride for multi-dimensional calculations. In this case, the software assumes the dense data allocation for the arrays x, y, or z due to the Fortran-style "by columns" representation of multi-dimensional arrays.