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 convolution and correlation API.
Intel® oneAPI Math Kernel Library
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.
|
internal_precision | optional
| integer
| Set equal to the value of
precision | Specifies precision of internal calculations.
Can enforce double precision calculations even when input/output data are
single precision. See
SetInternalPrecision for
the list of named constants for this parameter.
|
dims | explicit
| integer
| None
| Specifies the rank (number of dimensions) of
the user data provided in arrays
x ,y ,z . Can be in the range from 1
to 7.
|
xshape ,
yshape ,
zshape | explicit
| integer arrays
| None
| |
xstride ,
ystride ,
zstride | explicit
| integer arrays
| None
| Define strides within arrays
x ,
y ,
z , that is
specify the physical location of the input and output data in these arrays. See
Data Allocation for more
information.
|
start | optional
| integer array
| Undefined
| Defines the first element of the mathematical
result that will be stored to output array
z . See
SetStart and
Data Allocation for more
information. |
decimation | optional
| integer array
| Undefined
| Defines how to thin out the mathematical result
that will be stored to output array
z . See
SetDecimation and
Data Allocation for more
information.
|
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.