Intel® Integrated Performance Primitives (Intel® IPP) Developer Guide and Reference

ID 790148
Date 3/22/2024
Public
Document Table of Contents

Error Reporting

The Intel IPP functions return the status of the performed operation to report errors and warnings to the calling program. The last value of the error status is not stored, and you need to decide whether to check it or not as the function returns. The status values are of the IppStatus type and are global constant integers.

The following table lists status codes and corresponding messages reported by Intel IPP for signal processing.

Error Status Values and Messages 
Status Message
ippStsCpuNotSupportedErr The target cpu is not supported.
ippStsUnknownStatusCodeErr Unknown status code.
ippStsLzoBrokenStreamErr LZO safe decompression function cannot decode LZO stream.
ippStsRoundModeNotSupportedErr Rounding mode is not supported.
ippStsRegExpOptionsErr RegExp: Options for the pattern are incorrect.
ippStsRegExpErr RegExp: The structure pRegExpState contains wrong data.
ippStsRegExpMatchLimitErr RegExp: The match limit has been exhausted.
ippStsRegExpQuantifierErr RegExp: Incorrect quantifier.
ippStsRegExpGroupingErr RegExp: Incorrect grouping.
ippStsRegExpBackRefErr RegExp: Incorrect back reference.
ippStsRegExpChClassErr RegExp: Incorrect character class.
ippStsRegExpMetaChErr RegExp: Icnorrect metacharacter.
ippStsLengthErr Incorrect value for string length.
ippStsToneMagnErr Tone magnitude is less than or equal to zero.
ippStsToneFreqErr Tone frequency is negative, or greater than or equal to 0.5.
ippStsTonePhaseErr Tone phase is negative, or greater than or equal to 2*PI.
ippStsTrnglMagnErr Triangle magnitude is less than or equal to zero.
ippStsTrnglFreqErr Triangle frequency is negative, or greater than or equal to 0.5.
ippStsTrnglPhaseErr Triangle phase is negative, or greater than or equal to 2*PI.
ippStsTrnglAsymErr Triangle asymmetry is less than -PI, or greater than or equal to PI.
ippStsHugeWinErr The Kaiser window is too big.
ippStsJaehneErr Magnitude value is negative.
ippStsStepErr Step value is not valid.
ippStsStrideErr Stride value is less than length of the row.
ippStsEpsValErr Negative epsilon value.
ippStsScaleRangeErr Scale bounds are out of range.
ippStsThresholdErr Invalid threshold bounds.
ippStsWtOffsetErr Invalid offset value for wavelet filter.
ippStsAnchorErr Anchor point is outside the mask.
ippStsMaskSizeErr Invalid mask size.
ippStsShiftErr Shift value is less than zero.
ippStsSampleFactorErr Sampling factor is less than or equal to zero.
ippStsSamplePhaseErr Phase value is out of range, 0 ≤ phase < factor.
ippStsFIRMRFactorErr MR FIR sampling factor is less than or equal to zero.
ippStsFIRMRPhaseErr MR FIR sampling phase parameter is negative, or greater than or equal to the sampling factor.
ippStsRelFreqErr Relative frequency value is out of range.
ippStsFIRLenErr Length of the FIR filter is less than or equal to zero.
ippStsIIROrderErr Order of the IIR filter is not valid.
ippStsResizeFactorErr Resize factor(s) is less than or equal to zero.
ippStsDivByZeroErr An attempt to divide by zero.
ippStsInterpolationErr Invalid interpolation mode.
ippStsMirrorFlipErr Invalid flip mode.
ippStsMoment00ZeroErr Moment value M(0,0) is too small to continue calculations.
ippStsThreshNegLevelErr Negative value of the level in the threshold operation.
ippStsContextMatchErr Context parameter does not match the operation.
ippStsFftFlagErr Invalid value for the FFT flag parameter.
ippStsFftOrderErr Invalid value for the FFT order parameter.
ippStsMemAllocErr Not enough memory for the operation.
ippStsNullPtrErr Null pointer error.
ippStsSizeErr Incorrect value for data size.
ippStsBadArgErr Incorrect argument/parameter of the function.
ippStsErr Unknown/unspecified error.
ippStsNoErr No errors.
ippStsNoOperation No operation has been executed.
ippStsSqrtNegArg Negative value(s) of the argument in the function Sqrt.
ippStsEvenMedianMaskSize Even size of the Median Filter mask was replaced by the odd one.
ippStsDivByZero Zero value(s) of the divisor in the function Div.
ippStsLnZeroArg Zero value(s) of the argument in the function Ln.
ippStsLnNegArg Negative value(s) of the argument in the function Ln.
ippStsNanArg Argument value is not a number.
ippStsOverflow Overflow in the operation.
ippStsUnderflow Underflow in the operation.
ippStsSingularity Singularity in the operation.
ippStsDomain Argument is out of the function domain.
ippStsCpuMismatch Cannot set the library for the given cpu.
ippStsOvermuchStrings Number of destination strings is more than expected.
ippStsOverlongString Length of one of the destination strings is more than expected.
ippStsSrcSizeLessExpected DC: The size of source buffer is less than the expected one.
ippStsDstSizeLessExpected DC: The size of destination buffer is less than the expected one.
ippStsNotSupportedCpu The CPU is not supported.
ippStsAlgTypeErr The algorithm type is not supported.

*)

Product and Performance Information

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.

Notice revision #20201201

The status codes ending with Err (except for the ippStsNoErr status) indicate an error; the integer values of these codes are negative. When an error occurs, the function execution is interrupted. All other status codes indicate warnings. When a specific case is encountered, the function execution is completed and the corresponding warning status is returned.

For example, if the integer function ippsDiv_8u meets an attempt to divide a positive value by zero, the function execution is not interrupted. The result of the operation is set to the maximum value that can be represented by the source data type, and the function returns the warning status ippStsDivByZero. This is the case for the vector-vector operation ippsDiv. For the vector-scalar division operation ippsDivC, the function behavior is different: if the constant divisor is zero, then the function stops execution and returns immediately with the error status ippStsDivByZeroErr.