IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 38580


Ignore:
Timestamp:
Jul 7, 2015, 11:20:45 PM (11 years ago)
Author:
eugene
Message:

add isort, cleanup order

Location:
branches/eam_branches/ipp-20150625/Ohana/src/libohana
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/ipp-20150625/Ohana/src/libohana/include/ohana_sort.h

    r33963 r38580  
    6767void dsort (double *value, int N);
    6868void fsort (float *value, int N);
     69void isort (int *value, int N);
     70
     71void dsortpair (double *X, double *Y, int N);
    6972void fsortpair (float *X, float *Y, int N);
    70 void dsortpair (double *X, double *Y, int N);
    7173void isortpair (int *X, int *Y, int N);
     74
    7275void llsortpair (off_t *X, off_t *Y, off_t N);
     76
     77void dsortthree (double *X, double *Y, double *Z, int N);
    7378void fsortthree (float *X, float *Y, float *Z, int N);
    74 void dsortthree (double *X, double *Y, double *Z, int N);
     79
     80void dsortfour (double *X, double *Y, double *Z, double *W, int N);
    7581void fsortfour (float *X, float *Y, float *Z, float *W, int N);
    76 void dsortfour (double *X, double *Y, double *Z, double *W, int N);
    7782
    7883#endif
  • branches/eam_branches/ipp-20150625/Ohana/src/libohana/src/sorts.c

    r33963 r38580  
    2727}
    2828
    29 void fsortpair (float *X, float *Y, int N) {
     29void isort (int *value, int N) {
    3030
    31 # define SWAPFUNC(A,B){ float tmp; \
     31# define SWAPFUNC(A,B){ int tmp = value[A]; value[A] = value[B]; value[B] = tmp; }
     32# define COMPARE(A,B)(value[A] < value[B])
     33
     34  OHANA_SORT (N, COMPARE, SWAPFUNC);
     35
     36# undef SWAPFUNC
     37# undef COMPARE
     38
     39}
     40
     41void dsortpair (double *X, double *Y, int N) {
     42
     43# define SWAPFUNC(A,B){ double tmp; \
    3244  tmp = X[A]; X[A] = X[B]; X[B] = tmp; \
    3345  tmp = Y[A]; Y[A] = Y[B]; Y[B] = tmp; \
     
    4254}
    4355
    44 void dsortpair (double *X, double *Y, int N) {
     56void fsortpair (float *X, float *Y, int N) {
    4557
    46 # define SWAPFUNC(A,B){ double tmp; \
     58# define SWAPFUNC(A,B){ float tmp; \
    4759  tmp = X[A]; X[A] = X[B]; X[B] = tmp; \
    4860  tmp = Y[A]; Y[A] = Y[B]; Y[B] = tmp; \
     
    89101}
    90102
     103void dsortthree (double *X, double *Y, double *Z, int N) {
     104
     105# define SWAPFUNC(A,B){ double tmp; \
     106  tmp = X[A]; X[A] = X[B]; X[B] = tmp; \
     107  tmp = Y[A]; Y[A] = Y[B]; Y[B] = tmp; \
     108  tmp = Z[A]; Z[A] = Z[B]; Z[B] = tmp; \
     109}
     110# define COMPARE(A,B)(X[A] < X[B])
     111
     112  OHANA_SORT (N, COMPARE, SWAPFUNC);
     113
     114# undef SWAPFUNC
     115# undef COMPARE
     116
     117}
     118
    91119void fsortthree (float *X, float *Y, float *Z, int N) {
    92120
     
    105133}
    106134
    107 void dsortthree (double *X, double *Y, double *Z, int N) {
     135void dsortfour (double *X, double *Y, double *Z, double *W, int N) {
    108136
    109137# define SWAPFUNC(A,B){ double tmp; \
     
    111139  tmp = Y[A]; Y[A] = Y[B]; Y[B] = tmp; \
    112140  tmp = Z[A]; Z[A] = Z[B]; Z[B] = tmp; \
     141  tmp = W[A]; W[A] = W[B]; W[B] = tmp; \
    113142}
    114143# define COMPARE(A,B)(X[A] < X[B])
     
    138167}
    139168
    140 void dsortfour (double *X, double *Y, double *Z, double *W, int N) {
    141 
    142 # define SWAPFUNC(A,B){ double tmp; \
    143   tmp = X[A]; X[A] = X[B]; X[B] = tmp; \
    144   tmp = Y[A]; Y[A] = Y[B]; Y[B] = tmp; \
    145   tmp = Z[A]; Z[A] = Z[B]; Z[B] = tmp; \
    146   tmp = W[A]; W[A] = W[B]; W[B] = tmp; \
    147 }
    148 # define COMPARE(A,B)(X[A] < X[B])
    149 
    150   OHANA_SORT (N, COMPARE, SWAPFUNC);
    151 
    152 # undef SWAPFUNC
    153 # undef COMPARE
    154 
    155 }
Note: See TracChangeset for help on using the changeset viewer.