sn-transpositionsort: New tool.
[sort-networks.git] / README
diff --git a/README b/README
index e69de29..2fece43 100644 (file)
--- a/README
+++ b/README
@@ -0,0 +1,115 @@
+libsortnetwork
+--------------
+<http://octo.cx/sn>
+
+Library for handling comparator networks in general and sort networks in
+particular.
+
+
+Utility applications
+--------------------
+
+The distribution includes a number of utility applications for handling sort
+networks. Most tools operate in the typical UNIX fashion of reading from STDIN
+and writing to STDOUT, so that it is able to chain tools together.
+
+The distribution includes the following utility programs:
+
+  * sn-apply
+    Reads a list of values from STDIN and applies a given comparator network to
+    the list. The resulting list of printed to STDOUT.
+
+  * sn-bitonicmerge
+    Creates a bitonic merge network with a given number of left and right
+    inputs. The resulting network is printed to STDOUT.
+
+  * sn-bitonicsort
+    Creates a bitonic mergesort network with a given number of inputs and
+    prints the network to STDOUT.
+
+  * sn-check-bf
+    Does a brute-force check whether a given comparator network is a sort
+    network. It tries all 2^n 0-1-combinations resulting in exponential running
+    time, so only small networks can be tested within a reasonable time.
+
+  * sn-cut
+    Removes one or more inputs by assuming positive or negative infinity to be
+    applied to the inputs to remove.
+
+  * sn-info
+    Displays information about a comparator network in human readable form.
+
+  * sn-merge
+    Combines two sort networks using the odd-even or bitonic merge network.
+
+  * sn-normalize
+    Reads a sort network and prints a normalized version to STDOUT. A
+    normalized sort network is a network in which all comparators face the same
+    way.
+
+  * sn-oddevenmerge
+    Creates an odd-even merge network with a given number of left and right
+    inputs. The resulting network is printed to STDOUT.
+
+  * sn-oddevensort
+    Creates an odd-even mergesort network with a given number of inputs and
+    prints the network to STDOUT.
+
+  * sn-pairwisesort
+    Creates a pairwise sorting network based on the paper by Ian Parberry.
+    The number of inputs must be a power of two.
+
+  * sn-shmoo
+    Prints a so-called "shmoo chart" of a comparator network to STDOUT. The
+    running time of this tool is exponential, roughly O(m * 2^n) where m is the
+    number of stages and n is the number of inputs.
+
+  * sn-show
+    Prints an ASCII version of a sort network to STDOUT.
+
+  * sn-svg
+    Prints the Scalable Vector Graphics (SVG) sources of a graphic
+    representation of a comparator network to STDOUT.
+
+  * sn-tex
+    Prints the TikZ / TeX sources of a graphic representation of a comparator
+    network to STDOUT.
+
+  * sn-tex-cut
+    Prints the TikZ / TeX sources of a graphic representation of a cut sequence
+    to STDOUT.
+
+  * sn-transpositionsort
+    Creates an odd-even transpositionsort network with the given number of
+    inputs and prints the network to STDOUT.
+
+Experimental / research applications:
+
+  * sn-bb
+  * sn-bb-merge
+  * sn-count-cuts
+  * sn-count-markov
+  * sn-markov
+  * sn-evolution
+  * sn-evolution2
+  * sn-evolution-cut
+  * sn-evolution-merge
+
+
+License
+-------
+
+The libsortnetwork library is licensed under the GNU Lesser General Public
+License, version 2.1 or later (LGPLv2.1+).
+
+Other utility programs included in this distribution, for example
+"sn-normalize", are licensed under the GNU General Public License, version 2
+(GPLv2). The exact terms of this license can be found in the file "COPYING" in
+the top source directory.
+
+
+Author
+------
+
+libsortnetwork has been written by Florian "octo" Forster.
+You can reach Florian at <ff at octo.it>.