Community
cancel
Showing results for 
Search instead for 
Did you mean: 
117 Views

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

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
117 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.

 

 

Gennady_F_Intel
Moderator
117 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

BMart1
New Contributor II
117 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.

117 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.

Reply