Developer Reference

  • 0.10
  • 10/21/2020
  • Public Content
Contents

Convolution and Correlation Task Status and Error Reporting

The task status is an integer value, which is zero if no error has been detected while processing the task, or a specific non-zero error code otherwise. Negative status values indicate errors, and positive values indicate warnings.
An error can be caused by invalid parameter values, a system fault like a memory allocation failure, or can be an internal error self-detected by the software.
Each task descriptor contains the current status of the task. When creating a task object, the constructor assigns the
VSL_STATUS_OK
status to the task. When processing the task afterwards, other routines such as editors or executors can change the task status if an error occurs and write a corresponding error code into the task status field.
Note that at the stage of creating a task or editing its parameters, the set of parameters may be inconsistent. The parameter consistency check is only performed during the task commitment operation, which is implicitly invoked before task execution or task copying. If an error is detected at this stage, task execution or task copying is terminated and the task descriptor saves the corresponding error code. Once an error occurs, any further attempts to process that task descriptor is terminated and the task keeps the same error code.
Normally, every convolution or correlation function (except
DeleteTask
) returns the status assigned to the task while performing the function operation.
The header files define symbolic names for the status codes.
These names are defined as macros via the
#define
statements.
If there is no error, the
VSL_STATUS_OK
status is returned, which is defined as zero:
#define VSL_STATUS_OK 0
In case of an error, a non-zero error code is returned, which indicates the origin of the failure. The following status codes for the convolution/correlation error codes are pre-defined in the header files.
Convolution/Correlation Status Codes
Status Code
Description
VSL_CC_ERROR_NOT_IMPLEMENTED
Requested functionality is not implemented.
VSL_CC_ERROR_ALLOCATION_FAILURE
Memory allocation failure.
VSL_CC_ERROR_BAD_DESCRIPTOR
Task descriptor is corrupted.
VSL_CC_ERROR_SERVICE_FAILURE
A service function has failed.
VSL_CC_ERROR_EDIT_FAILURE
Failure while editing the task.
VSL_CC_ERROR_EDIT_PROHIBITED
You cannot edit this parameter.
VSL_CC_ERROR_COMMIT_FAILURE
Task commitment has failed.
VSL_CC_ERROR_COPY_FAILURE
Failure while copying the task.
VSL_CC_ERROR_DELETE_FAILURE
Failure while deleting the task.
VSL_CC_ERROR_BAD_ARGUMENT
Bad argument or task parameter.
VSL_CC_ERROR_JOB
Bad parameter:
job
.
SL_CC_ERROR_KIND
Bad parameter:
kind
.
VSL_CC_ERROR_MODE
Bad parameter:
mode
.
VSL_CC_ERROR_METHOD
Bad parameter:
method
.
VSL_CC_ERROR_TYPE
Bad parameter:
type
.
VSL_CC_ERROR_EXTERNAL_PRECISION
Bad parameter:
external_precision
.
VSL_CC_ERROR_INTERNAL_PRECISION
Bad parameter:
internal_precision
.
VSL_CC_ERROR_PRECISION
Incompatible external/internal precisions.
VSL_CC_ERROR_DIMS
Bad parameter:
dims
.
VSL_CC_ERROR_XSHAPE
Bad parameter:
xshape
.
VSL_CC_ERROR_YSHAPE
Bad parameter:
yshape
.
Callback function for an abstract BRNG returns an invalid number of updated entries in a buffer, that is, < 0 or >
nmax
.
VSL_CC_ERROR_ZSHAPE
Bad parameter:
zshape
.
VSL_CC_ERROR_XSTRIDE
Bad parameter:
xstride
.
VSL_CC_ERROR_YSTRIDE
Bad parameter:
ystride
.
VSL_CC_ERROR_ZSTRIDE
Bad parameter:
zstride
.
VSL_CC_ERROR_X
Bad parameter:
x
.
VSL_CC_ERROR_Y
Bad parameter:
y
.
VSL_CC_ERROR_Z
Bad parameter:
z
.
VSL_CC_ERROR_START
Bad parameter:
start
.
VSL_CC_ERROR_DECIMATION
Bad parameter:
decimation
.
VSL_CC_ERROR_OTHER
Another error.

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804