homer512

ordinal similarity

Jul 2nd, 2013
212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.65 KB | None | 0 0
  1. // see https://plus.google.com/u/0/112993898662880391149/posts/HDUTihJJHrk
  2. int surfer(float* ke, float* pa, int is)
  3. {
  4.   int i1 = (is+1)/2 -1;
  5.   int i2 = is -1;
  6.   int i3 = i2/2*is;
  7.   int i4 = i3 + i1;
  8.   int i5 = i3 + i2;
  9.   int i6 = i2*is;
  10.   int i7 = i6 + i1;
  11.   int i8 = is*is -1;
  12.  
  13.   int cmp1 = (ke[0] > ke[i1]) == (pa[0] > pa[i1]);
  14.   int cmp2 = (ke[i1] > ke[i2]) == (pa[i1] > pa[i2]);
  15.   int cmp3 = (ke[i3] > ke[i4]) == (pa[i3] > pa[i4]);
  16.   int cmp4 = (ke[i4] > ke[i5]) == (pa[i4] > pa[i5]);
  17.   int cmp5 = (ke[i6] > ke[i7]) == (pa[i6] > pa[i7]);
  18.   int cmp6 = (ke[i7] > ke[i8]) == (pa[i7] > pa[i8]);
  19.  
  20.   return cmp1 + cmp2 + cmp3 + cmp4 + cmp5 + cmp6;
  21. }
Advertisement
Add Comment
Please, Sign In to add comment