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