Community
cancel
Showing results for 
Search instead for 
Did you mean: 
S__Mark
Beginner
78 Views

Overflow undetected in ippsAdd_64f_A53 and related functions

Hello, the attached C++ program illustrates that overflow is
not correctly detected in IPP real vector arithmetic operations
involving addition, subtraction, multiplication and division.

The affected routines are:

vector-vector
ippsAdd_64f_A53
ippsSub_64f_A53
ippsMul_64f_A53
ippsDiv_64f_A53

vector-scalar
ippsAddC_64f
ippsSubC_64f
(and mul div variants)

scalar-vector
ippsSubCRev_64f

I have not tested the float versions ippsAdd_32f etc.
The complex versions ippsAdd_64fc etc appear to work fine.

The vector-scalar and scalar-vector routines signal an error
through fetestexcept so that can be used instead of IppStatus.
However the error in the vector-vector functions is not signalled.

Example output:

ippCore2018.0.3 (r58644)

ippsAdd_64f_A53:
= 1.79769e+308
= 1.79769e+308
= inf
ippStsNoErr: No errors
fetestexcept: No errors

ippsSub_64f_A53:
= 1.79769e+308
= -1.79769e+308
= inf
ippStsNoErr: No errors
fetestexcept: No errors

ippMul_64f_A53:
= 1.79769e+308
= 1.79769e+308
= inf
ippStsNoErr: No errors
fetestexcept: No errors

ippDiv_64f_A53:
= 1.79769e+308
= 2.22507e-308
= inf
ippStsNoErr: No errors
fetestexcept: No errors

ippsAddC_64f:
= 1.79769e+308
 y  = 1.79769e+308
= inf
ippStsNoErr: No errors
fetestexcept: Error detected

ippsSubC_64f:
= 1.79769e+308
 y  = -1.79769e+308
= inf
ippStsNoErr: No errors
fetestexcept: Error detected

iippsSubCRev_64f:
= -1.79769e+308
 y  = 1.79769e+308
= inf
ippStsNoErr: No errors
fetestexcept: Error detected


Best wishes.
 

0 Kudos
2 Replies
S__Mark
Beginner
78 Views

There is a similar problem in multiplication ippsMul_64f_A53

Gennady_F_Intel
Moderator
78 Views

thanks Mark, we will check and back asap.

Reply