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

PIII Magnitude Bug ippsCartToPolar_32fc

nickkooij
Beginner
532 Views
The(SSE1) P3/P4 implementation of ippsCartToPolar_32fc generates floating point infinite magnitudesfor from finite input. This occurs when the complex input is sufficiently close to {re,im} = {0,0}.
The following, whenlinked with the PIII library,generates an incorrect, floating-point infinity, magnitude:
const Ipp32fc complex[] = { { 0.0f, 1e-22f } };
float magnitude[] = { 0 };
float phase[] = { 0 };
::ippsCartToPolar_32fc( complex, magnitude, phase, 1 );
printf( "magnitude: %g ", magnitude[0] );
On my system (Visual C++ 6, SP5) this outputs "magnitude: -1.#INF".
The generic library outputs the correct result.
This occurs in IPP 3.0 and 4.0.
Other magnitude related functions are also flawed.
0 Kudos
1 Reply
Ying_S_Intel
Employee
532 Views
Dear Customer,
Could you please try the latest version 4.1or 5.0 beta to see if it has same issue?

If the result on Pentium III is still inaccurate, please submit details with test case via Intel Premier Support (https://premier.intel.com)
Thanks,
Ying S
Intel Corp.
0 Kudos
Reply