SortRadixAscend, SortRadixDescend

Sorts all elements of a vector using radix sorting algorithm.

Syntax

IppStatus ippsSortRadixAscend_8u_I(Ipp8u* pSrcDst, Ipp8u* pTmp, Ipp32s len);

IppStatus ippsSortRadixAscend_16u_I(Ipp16u* pSrcDst, Ipp16u* pTmp, Ipp32s len);

IppStatus ippsSortRadixAscend_16s_I(Ipp16s* pSrcDst, Ipp16s* pTmp, Ipp32s len);

IppStatus ippsSortRadixAscend_32u_I(Ipp32u* pSrcDst, Ipp32u* pTmp, Ipp32s len);

IppStatus ippsSortRadixAscend_32s_I(Ipp32s* pSrcDst, Ipp32s* pTmp, Ipp32s len);

IppStatus ippsSortRadixAscend_32f_I(Ipp32f* pSrcDst, Ipp32f* pTmp, Ipp32s len);

IppStatus ippsSortRadixAscend_64f_I(Ipp64f* pSrcDst, Ipp64f* pTmp, Ipp32s len);

IppStatus ippsSortRadixDescend_8u_I(Ipp8u* pSrcDst, Ipp8u* pTmp, Ipp32s len);

IppStatus ippsSortRadixDescend_16u_I(Ipp16u* pSrcDst, Ipp16u* pTmp, Ipp32s len);

IppStatus ippsSortRadixDescend_16s_I(Ipp16s* pSrcDst, Ipp16s* pTmp, Ipp32s len);

IppStatus ippsSortRadixDescend_32u_I(Ipp32u* pSrcDst, Ipp32u* pTmp, Ipp32s len);

IppStatus ippsSortRadixDescend_32s_I(Ipp32s* pSrcDst, Ipp32s* pTmp, Ipp32s len);

IppStatus ippsSortRadixDescend_32f_I(Ipp32f* pSrcDst, Ipp32f* pTmp, Ipp32s len);

IppStatus ippsSortRadixDescend_64f_I(Ipp64f* pSrcDst, Ipp64f* pTmp, Ipp32s len);

Parameters

pSrcDst

Pointer to the source and destination vector.

pTmp

Pointer to the temporary vector.

len

Number of elements in the vector

Description

The functions ippsSortRadixAscend and ippsSortRadixDescend are declared in the ipps.h file. These functions rearrange all elements of the source vector pSrcDst in the ascending or descending order, respectively, using “radix sort” algorithm, and store the result in the destination vector pSrcDst. Temporary vector pTmp is required by the algorithm, its size must be equal to the the size of the source vector.

The example below shows how to call the function ippsSortRadixAscend_8u_I.

Return Values

ippStsNoErr

Indicates no error.

ippStsNullPtrErr

Indicates an error when the pSrcDst or pTmp is NULL.

ippStsSizeErr

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

Using the Function ippsSortRadixAscend

void func_sort()
{
   Ipp8u i, vec[10] = {0,2,4,5,1,8,9,4,6,7}, tmp[10];
   IppStatus status;

		
   status = ippsSortRadixAscend_8u_I(vec,tmp,10);
   if(ippStsNoErr != status)
      printf("IPP Error: %s",ippGetStatusString(status));
   else {
	   for(i=0; i<10; i++) printf("%d ",vec[i]); printf("\n");
   }
}
Result
   0 1 2 4 4 5 6 7 8 9

	

Submit feedback on this help topic

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