ConjPerm

Converts the data in Perm format to complex data format.

Syntax

IppStatus ippsConjPerm_16sc(const Ipp16s* pSrc, Ipp16sc* pDst, int lenDst);

IppStatus ippsConjPerm_32fc(const Ipp32f* pSrc, Ipp32fc* pDst, int lenDst);

IppStatus ippsConjPerm_64fc(const Ipp64f* pSrc, Ipp64fc* pDst, int lenDst);

IppStatus ippsConjPerm_16sc_I(Ipp16sc* pSrcDst, int lenDst);

IppStatus ippsConjPerm_32fc_I(Ipp32fc* pSrcDst, int lenDst);

IppStatus ippsConjPerm_64fc_I(Ipp64fc* pSrcDst, int lenDst);

Parameters

pSrc

Pointer to the source vector.

pDst

Pointer to the destination vector.

pSrcDst

Pointer to the source and destination vector (for the in-place operation).

lenDst

Number of elements in the vector.

Description

The function ippsConjPerm is declared in the ipps.h file. This function converts the data in Perm format in the vector pSrc to complex data format and stores the results in pDst.

The in-place function ippsConjPerm converts the data in Perm format in the vector pSrcDst to complex data format and stores the results in pSrcDst.

The following table shows the examples of unpack from the Perm format. The Data column contains the real input data to be converted by the forward FFT transform to the packed data. The packed real data are in the Packed column. The output result is the complex data vector in the Extended column. The number of vector elements is in the Length column.

Examples of Packed Data Obtained by FFT
Data Packed Extended Length
FFT([1]) 1 {1, 0} 1
FFT([1 2]) 3, -1 {3, 0}, {-1, 0} 2
FFT([1 2 3]) 6, -1.5, 0.86 {6, 0}, {-1.5, 0.86}, {-1.5, -0.86} 3
FFT([1 2 3 9]) 15, -7, -2, 7 {15, 0}, {-2, 7}, {-7, 0}, {-2, -7} 4
Code example 7-2 below shows how to use the function ippsConjPerm

Return Values

ippStsNoErr

Indicates no error.

ippStsNullPtrErr

Indicates an error when the pSrcDst, pDst, or pSrc pointer is NULL.

ippStsSizeErr

Indicates an error when lenDst is less than or equal to 0.

Using the ippsConjPerm Function

void ConjPerm(void) {
      Ipp16s x[8] = {1,2,3,5,6,7,8,9};
      Ipp16sc zero={0,0}, y[6];
      IppStatus st;
      ippsSet_16sc( zero, y, 6 );
      st = ippsConjPerm_16sc( x, y, 6 );
      printf_16sc(“Perm 6:”, y, 6, st );
      ippsSet_16sc( zero, y, 6 );
      st = ippsConjPerm_16sc( x, y, 5 );
      printf_16sc(“Perm 5:”, y, 5, st );
}
Output:
    Perm 6:  {1,0} {3,5} {6,7} {2,0} {6,-7} {3,-5}
    Perm 5:  {1,0} {2,3} {5,6} {5,-6} {2,-3}

	

Submit feedback on this help topic

Copyright © 2000 - 2011, Intel Corporation. All rights reserved.