Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.

ippiExp_32f_C3IR(-Inf) is causing _EM_INVALID

Mikhail_Matrosov
367 Views
Hello,

I'm using Log+Exp functions bundle to perform pow() function on my image. When working with zero pixels, log(0) returns -Inf and exp(-Inf) retuns zero, so the result is correct. However, if _EM_INVALID flag in floating-point control word is unmasked, exception "0xC00002B5: Multiple floating point traps" is thrown.

I do not expect this exception, since no NaN is actually in game. For now I masked this flag during the call of ippiExp_32f_C3IR(), but I want proper behavior.
0 Kudos
1 Reply
Mikhail_Matrosov
367 Views
I've uploaded binary dump of image causing crash when being exponentiating. Here is the code used to create dump:

std::ofstreamoutput("img.32fC3");

output.write(reinterpret_cast(&width),sizeof(int));
output.write(reinterpret_cast(&height),sizeof(int));

for(inti=0;ioutput.write(pLine,count);
pLine+=step;
}

output.close();

pLine is pointer to the beginning of the image. Step is standard IPP step between subsequent lines in bytes. count is number of significant bytes in a row.

First two 4-byte bundles contain width and height of the image. Then data is stored in RGB order without padding, 4 bytes per channel.
0 Kudos
Reply