DIPlib Documentation - ©1995-2017 Quantitative Imaging Group, Delft University of Technology.

SortSwapFunction

Typedef for swap and copy function (sorting)

SYNOPSIS

#include "dip_sort.h"

void (*dip_SortSwapFunction) ( data1, index1, data2, index2, copy )

FUNCTION

A function of this type must be supplied to the sorting algorithms for data of arbitrary type. It should swap data1[index1] and data2[index2] if copy = DIP_FALSE, and copy data1[index1] to data2[index2] if copy = DIP_TRUE.

Example:

void dip_MyComplexSwap( void *data1, dip_int index1, void *data2, dip_int index2, dip_Boolean copy )
{
   dip_complex *cmplx1, *cmplx2, tmpValue;

   cmplx1 = data1;
   cmplx2 = data2;
   cmplx1 += index1;
   cmplx2 += index2;
   if ( copy == DIP_TRUE )
   {
      cmplx2->re = cmplx1->re;
      cmplx2->im = cmplx1->im;
   }
   else
   {
      tmpValue.re = cmplx2->re;
      tmpValue.im = cmplx2->im;
      cmplx2->re = cmplx1->re;
      cmplx2->im = cmplx1->im;
      cmplx1->re = tmpValue.re;
      cmplx1->im = tmpValue.im;
   }
   return;
}

ARGUMENTS

Data typeNameDescription
void *data1Pointer to first data array
dip_intindex1Index to element in first data array
void *data2Pointer to second data array
dip_intindex2Index to element in second data array
dip_Booleancopyif DIP_FALSE, swap data. if DIP_TRUE copy data from data1 to data2

SEE ALSO

General information about sorting

SortAnything, QuickSortAnything, SortCompareFunction