X-Git-Url: https://git.octo.it/?p=sort-networks.git;a=blobdiff_plain;f=README;h=c5dfe694bc6eb65709153a698f7438c80ca662d5;hp=e69de29bb2d1d6434b8b29ae775ad8c2e48c5391;hb=48c59e57e010d13aeba74ff02257127493377b5e;hpb=e5e7ea97e23be6a9e6af97c7bef0fb3a56a898e7 diff --git a/README b/README index e69de29..c5dfe69 100644 --- a/README +++ b/README @@ -0,0 +1,111 @@ +libsortnetwork +-------------- + + +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. + +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 .