src/sn_random.[ch]: Be more random.
[sort-networks.git] / src / sn-oddevenmerge.c
index 8cb64f6..e4161be 100644 (file)
@@ -1,6 +1,6 @@
 /**
- * collectd - src/sn-oddevenmerge.c
- * Copyright (C) 2008,2009  Florian octo Forster
+ * libsortnetwork - src/sn-oddevenmerge.c
+ * Copyright (C) 2008-2010  Florian octo Forster
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the
@@ -16,7 +16,7 @@
  * 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
  *
  * Authors:
- *   Florian octo Forster <octo at verplant.org>
+ *   Florian octo Forster <ff at octo.it>
  **/
 
 #ifndef _ISOC99_SOURCE
 
 int main (int argc, char **argv)
 {
-  sn_network_t *n;
-  size_t inputs_num;
+  sn_network_t *sn_left;
+  sn_network_t *sn_right;
+  sn_network_t *oem;
+  int inputs_left;
+  int inputs_right;
 
-  if (argc != 2)
+  if (argc != 3)
   {
-    printf ("Usage: %s <num inputs>\n", argv[0]);
+    printf ("Usage: %s <inputs left> <inputs right>\n", argv[0]);
     return (0);
   }
 
-  inputs_num = (size_t) atoi (argv[1]);
-  if (inputs_num < 2)
+  inputs_left =  atoi (argv[1]);
+  inputs_right = atoi (argv[2]);
+  if ((inputs_left < 1) || (inputs_right < 1))
   {
-    fprintf (stderr, "Invalid number of inputs: %zu\n", inputs_num);
+    fprintf (stderr, "Invalid number of inputs: %i/%i\n",
+       inputs_left, inputs_right);
     return (1);
   }
 
-  n = sn_network_create_odd_even_mergesort (inputs_num);
-  if (n == NULL)
-  {
-    printf ("n == NULL!\n");
-    return (1);
-  }
+  sn_left = sn_network_create (inputs_left);
+  sn_right = sn_network_create (inputs_right);
+  oem = sn_network_combine_odd_even_merge (sn_left, sn_right);
+
+  sn_network_write (oem, stdout);
 
-  sn_network_write (n, stdout);
+  sn_network_destroy (sn_left);
+  sn_network_destroy (sn_right);
+  sn_network_destroy (oem);
 
   return (0);
 } /* int main */