Community
cancel
Showing results for 
Search instead for 
Did you mean: 
James_v_1
Beginner
150 Views

ippsFIR_32fc_I -> ippsFIR_32fc

Can the source and destination parameters for ippsFIR_32fc (the non-inline version) safely be the same array? 

Thanks

0 Kudos
10 Replies
SergeyKostrov
Valued Contributor II
150 Views

This is what a comment in ipps.h header says: ... // pSrcDst - pointer to the input/output vector in in-place operation // pSrc - pointer to the input vector // pDst - pointer to the output vector ...
James_v_1
Beginner
150 Views

That would be for the in-place version.  I'm interested the non-in-place version, which doesn't specify whether pSrc and pDst can be the same thing.

SergeyKostrov
Valued Contributor II
150 Views

>>...I'm interested the non-in-place version, which doesn't specify whether pSrc and pDst can be the same thing... I could verify with another IPP function ippsFIR_Direct_32f because it has a similar set of parameters. If you try ippsFIR_32fc without success post codes for review.
Igor_A_Intel
Employee
150 Views

Starting from 7.1.1 you can safely use pSrc=pDst for all functions that have _I analogue, moreover - all such "_I" functions are marked as deprecated with reccomendation to use corresponding out-of-place functionality with pSrc=pDst.

4 Sergey - don't use "direct" functions - they are also marked as deprecated and most of them internaly are implemented with InitAlloc and call to a function with state - so "direct" in most cases are just wrappers - for the question "why" I have only 1 answer - historically...

regards, Igor

SergeyKostrov
Valued Contributor II
150 Views

>>...don't use "direct" functions - they are also marked as deprecated... Thanks and I'll look for a replacement.
James_v_1
Beginner
150 Views

Igor Astakhov (Intel) wrote:

Starting from 7.1.1 you can safely use pSrc=pDst for all functions that have _I analogue, moreover - all such "_I" functions are marked as deprecated with reccomendation to use corresponding out-of-place functionality with pSrc=pDst.

4 Sergey - don't use "direct" functions - they are also marked as deprecated and most of them internaly are implemented with InitAlloc and call to a function with state - so "direct" in most cases are just wrappers - for the question "why" I have only 1 answer - historically...

Thanks Igor.  I've already replaced the simpler _I functions (add, mul, div, etc), but wasn't sure that the same applied to the FIR functions - thanks for confirming that.  I'm in the process of replacing the ippsFIRDirect functions with their non-direct counterparts too.

James_v_1
Beginner
150 Views

Igor Astakhov (Intel) wrote:

Starting from 7.1.1 you can safely use pSrc=pDst for all functions that have _I analogue, moreover - all such "_I" functions are marked as deprecated with reccomendation to use corresponding out-of-place functionality with pSrc=pDst.

ippsFIR_32fc(Data, Data, FrameLength, FirStateCmplx);  //<- This does not work

ippsFIR_32fc_I(Data, FrameLength, FirStateCmplx); //<- This does work

It looks like a temporary array will be needed, in IPP 7.1.0 at least.  I'll test on 7.1.1 and see what happens there.

James_v_1
Beginner
150 Views

Actually, it looks like I might be stuck on 7.1.0.  Let me look into this a bit further.

Igor_A_Intel
Employee
150 Views

Hi James,

we fixed all issues with pSrc==pDst (for out-of-place functions that have in-place deprecated analogues) in 7.1.1. If you find any problems in 7.1.1 with pSrc==pDst - please submit a bug - it will be fixed ASAP.

Regards, Igor

James_v_1
Beginner
150 Views

Thanks Igor, it looks like I jumped the gun.  Version 7.1.1 fixes the problem.  

Reply