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:
[x] = 1.79769e+308
[y] = 1.79769e+308
[z] = inf
ippStsNoErr: No errors
fetestexcept: No errors
ippsSub_64f_A53:
[x] = 1.79769e+308
[y] = -1.79769e+308
[z] = inf
ippStsNoErr: No errors
fetestexcept: No errors
ippMul_64f_A53:
[x] = 1.79769e+308
[y] = 1.79769e+308
[z] = inf
ippStsNoErr: No errors
fetestexcept: No errors
ippDiv_64f_A53:
[x] = 1.79769e+308
[y] = 2.22507e-308
[z] = inf
ippStsNoErr: No errors
fetestexcept: No errors
ippsAddC_64f:
[x] = 1.79769e+308
y = 1.79769e+308
[z] = inf
ippStsNoErr: No errors
fetestexcept: Error detected
ippsSubC_64f:
[x] = 1.79769e+308
y = -1.79769e+308
[z] = inf
ippStsNoErr: No errors
fetestexcept: Error detected
iippsSubCRev_64f:
[x] = -1.79769e+308
y = 1.79769e+308
[z] = inf
ippStsNoErr: No errors
fetestexcept: Error detected
Best wishes.