Index: /branches/eam_branches/ipp-20150625/Ohana/src/libohana/include/ohana_sort.h
===================================================================
--- /branches/eam_branches/ipp-20150625/Ohana/src/libohana/include/ohana_sort.h	(revision 38579)
+++ /branches/eam_branches/ipp-20150625/Ohana/src/libohana/include/ohana_sort.h	(revision 38580)
@@ -67,12 +67,17 @@
 void dsort (double *value, int N);
 void fsort (float *value, int N);
+void isort (int *value, int N);
+
+void dsortpair (double *X, double *Y, int N);
 void fsortpair (float *X, float *Y, int N);
-void dsortpair (double *X, double *Y, int N);
 void isortpair (int *X, int *Y, int N);
+
 void llsortpair (off_t *X, off_t *Y, off_t N);
+
+void dsortthree (double *X, double *Y, double *Z, int N);
 void fsortthree (float *X, float *Y, float *Z, int N);
-void dsortthree (double *X, double *Y, double *Z, int N);
+
+void dsortfour (double *X, double *Y, double *Z, double *W, int N);
 void fsortfour (float *X, float *Y, float *Z, float *W, int N);
-void dsortfour (double *X, double *Y, double *Z, double *W, int N);
 
 #endif
Index: /branches/eam_branches/ipp-20150625/Ohana/src/libohana/src/sorts.c
===================================================================
--- /branches/eam_branches/ipp-20150625/Ohana/src/libohana/src/sorts.c	(revision 38579)
+++ /branches/eam_branches/ipp-20150625/Ohana/src/libohana/src/sorts.c	(revision 38580)
@@ -27,7 +27,19 @@
 }
 
-void fsortpair (float *X, float *Y, int N) {
+void isort (int *value, int N) {
 
-# define SWAPFUNC(A,B){ float tmp; \
+# define SWAPFUNC(A,B){ int tmp = value[A]; value[A] = value[B]; value[B] = tmp; }
+# define COMPARE(A,B)(value[A] < value[B])
+
+  OHANA_SORT (N, COMPARE, SWAPFUNC);
+
+# undef SWAPFUNC
+# undef COMPARE
+
+}
+
+void dsortpair (double *X, double *Y, int N) {
+
+# define SWAPFUNC(A,B){ double tmp; \
   tmp = X[A]; X[A] = X[B]; X[B] = tmp; \
   tmp = Y[A]; Y[A] = Y[B]; Y[B] = tmp; \
@@ -42,7 +54,7 @@
 }
 
-void dsortpair (double *X, double *Y, int N) {
+void fsortpair (float *X, float *Y, int N) {
 
-# define SWAPFUNC(A,B){ double tmp; \
+# define SWAPFUNC(A,B){ float tmp; \
   tmp = X[A]; X[A] = X[B]; X[B] = tmp; \
   tmp = Y[A]; Y[A] = Y[B]; Y[B] = tmp; \
@@ -89,4 +101,20 @@
 }
 
+void dsortthree (double *X, double *Y, double *Z, int N) {
+
+# define SWAPFUNC(A,B){ double tmp; \
+  tmp = X[A]; X[A] = X[B]; X[B] = tmp; \
+  tmp = Y[A]; Y[A] = Y[B]; Y[B] = tmp; \
+  tmp = Z[A]; Z[A] = Z[B]; Z[B] = tmp; \
+}
+# define COMPARE(A,B)(X[A] < X[B])
+
+  OHANA_SORT (N, COMPARE, SWAPFUNC);
+
+# undef SWAPFUNC
+# undef COMPARE
+
+}
+
 void fsortthree (float *X, float *Y, float *Z, int N) {
 
@@ -105,5 +133,5 @@
 }
 
-void dsortthree (double *X, double *Y, double *Z, int N) {
+void dsortfour (double *X, double *Y, double *Z, double *W, int N) {
 
 # define SWAPFUNC(A,B){ double tmp; \
@@ -111,4 +139,5 @@
   tmp = Y[A]; Y[A] = Y[B]; Y[B] = tmp; \
   tmp = Z[A]; Z[A] = Z[B]; Z[B] = tmp; \
+  tmp = W[A]; W[A] = W[B]; W[B] = tmp; \
 }
 # define COMPARE(A,B)(X[A] < X[B])
@@ -138,18 +167,2 @@
 }
 
-void dsortfour (double *X, double *Y, double *Z, double *W, int N) {
-
-# define SWAPFUNC(A,B){ double tmp; \
-  tmp = X[A]; X[A] = X[B]; X[B] = tmp; \
-  tmp = Y[A]; Y[A] = Y[B]; Y[B] = tmp; \
-  tmp = Z[A]; Z[A] = Z[B]; Z[B] = tmp; \
-  tmp = W[A]; W[A] = W[B]; W[B] = tmp; \
-}
-# define COMPARE(A,B)(X[A] < X[B])
-
-  OHANA_SORT (N, COMPARE, SWAPFUNC);
-
-# undef SWAPFUNC
-# undef COMPARE
-
-}
