From 5aaccd0ba0e759008a8c008f5f67953a2589900e Mon Sep 17 00:00:00 2001
From: David Kaufmann <astra@fsinf.at>
Date: Thu, 24 Nov 2011 00:54:22 +0100
Subject: [PATCH] cleanup

---
 openmp/merge/sort.c | 33 ++++++++++++++++-----------------
 1 file changed, 16 insertions(+), 17 deletions(-)

diff --git a/openmp/merge/sort.c b/openmp/merge/sort.c
index 5d7cb99..e18d1c8 100644
--- a/openmp/merge/sort.c
+++ b/openmp/merge/sort.c
@@ -5,17 +5,19 @@
 #include <unistd.h>
 #include "numlist.h"
 
+#define ATYPE int
+
 void printlist(char * message, int * ptr);
 int rank(int elem, int * list);
 /* merge(a,n,b,m,c): merges a of size n and b of size m into c */
-void merge(int ti, int * a, int n, int * b, int m, int * c);
+void merge(int ti, ATYPE * a, int n, ATYPE * b, int m, ATYPE * c);
 
 int main ( int argc, char ** argv) {
 	int n = LISTSIZE;
 	int p = 1;
 	int opt, i;
 	int a_len, b_len, b_len_end, b_len_begin;
-	int * c;
+	ATYPE * c;
 	double startTime, endTime;
 
 	while ((opt = getopt(argc, argv, "t:")) != -1) {
@@ -32,7 +34,7 @@ int main ( int argc, char ** argv) {
 	//printf ("Maximal number of threads: %i\n", omp_get_max_threads());
 	//printf ("----------------------------------\n");
 
-	c = (int *) malloc((LISTSIZE * 2 + 1) * (sizeof (int)));
+	c = (ATYPE *) malloc((LISTSIZE * 2 + 1) * (sizeof (ATYPE)));
 	c[LISTSIZE*2] = -1;
 
 	//printlist("0 Sorted List A:", a);
@@ -71,7 +73,7 @@ int main ( int argc, char ** argv) {
 	return 0;
 }
 
-void printlist(char * message, int * ptr) {
+void printlist(char * message, ATYPE * ptr) {
 	printf (message);
 	while (*ptr != -1) {
 		printf (" %i", *ptr);
@@ -80,7 +82,7 @@ void printlist(char * message, int * ptr) {
 	printf ("\n");
 }
 
-int rank(int elem, int * list) {
+int rank(int elem, ATYPE * list) {
 	int pos;
 
 	pos = 0;
@@ -96,7 +98,7 @@ int rank(int elem, int * list) {
 	return -1;
 }
 
-void merge(int ti, int * a, int n, int * b, int m, int * c) {
+void merge(int ti, ATYPE * a, int n, ATYPE * b, int m, int * c) {
 	int sum;
 	int i;
 	/*printf ("sorting a:%i (%i) and b:%i (%i)\n", *a, n, *b, m);*/
@@ -106,27 +108,24 @@ void merge(int ti, int * a, int n, int * b, int m, int * c) {
 	//printf ("%i modifying %i (%i+%i) (c[%i]/0x%08x -> c[%i]/0x%08x)\n", ti, sum, n, m, 0, (unsigned int) &c, sum-1, ((unsigned int) &c)+sum);
 	for (i = 0; i < sum; i++) {
 		// n+m == 0
-		if (*a < 0 && *b < 0) {
+		if (n <= 0 && m <= 0) {
 			printf ("%i Calculation failed somehow...\n", ti);
 			return;
 		}
-		if (*a < 0) {
-			c[i] = *b; m--;
-			b++;
+		if (n <= 0) {
+			c[i] = *b++; m--;
 		} else {
-			if (*b < 0) {
-				c[i] = *a; n--;
-				a++;
+			if (m <= 0) {
+				c[i] = *a++; n--;
 			} else {
 				if (*a < *b) {
-					c[i] = *a; n--;
-					a++;
+					c[i] = *a++; n--;
 				} else {
-					c[i] = *b; m--;
-					b++;
+					c[i] = *b++; m--;
 				}
 			}
 		}
 	}
+	printf ("merge done, n=%d, m=%d\n", n, m);
 	return;
 }
-- 
2.43.0