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

In-place DFT and conversions between polar and Cartesian representations?

Achtzehnter__Joachim
490 Views

Many IPP functions have special versions with the letter 'I' in the name, where outputs are returned in-place in the input vectors. This applies to the FFT functions, but somehow not for DFT. Can the DFT functions be used in-place by passing the same pointer for pSrc and pDst? For example, will this work with ippsDFTFwd_CToC_32fc or ippsDFTInv_CToC_64f and their inverses?

Conversions between Cartesian and polar representations are another good example where it would be highly desirable to do the conversion in-place instead of copying and potentially causing cache misses. Will ippsCartToPolar_64f work correctly if pSrcRe == pDstMagn and pSrcIm == pDstPhase? What about ippsPolarToCart_64f?

0 Kudos
4 Replies
Gennady_F_Intel
Moderator
490 Views

yes, DFT functions can be used in-place by passing the same pointer for pSrc and pDst but it doesn't work for ippsCartToPolar_64f functions.

 

 

0 Kudos
Gennady_F_Intel
Moderator
490 Views

and just in case you really need to have an inplace feature with ippsCartToPolar_64f functionality, you may submit the Feature Request to the Intel Online Service Center.

thanks, Gennady

0 Kudos
BMart1
New Contributor II
490 Views

Calling functions in-place may break in future releases, as it's not documented to work. When it works, Intel should offer in-place versions that simply call the normal versions.

0 Kudos
Achtzehnter__Joachim
490 Views

Thanks for the info, Gennady.

And yes, I agree with Bruno, if the intention is that a function can be called with aliased input pointers this should be documented. Even better would be a separate function that uses a single inout argument, then the signature makes clear that it is for in-place use.

0 Kudos
Reply