src/sn_stage.h: Begin adding Doxygen documentation.
[sort-networks.git] / README
1 libsortnetwork
2 --------------
3 <http://octo.cx/sn>
4
5 Library for handling comparator networks in general and sort networks in
6 particular.
7
8
9 Utility applications
10 --------------------
11
12 The distribution includes a number of utility applications for handling sort
13 networks. Most tools operate in the typical UNIX fashion of reading from STDIN
14 and writing to STDOUT, so that it is able to chain tools together.
15
16 The distribution includes the following utility programs:
17
18   * sn-apply
19     Reads a list of values from STDIN and applies a given comparator network to
20     the list. The resulting list of printed to STDOUT.
21
22   * sn-batcher
23     Creates a batcher bitonic-merge-sort network with a given number of inputs
24     and prints the network to STDOUT. The number of inputs must be a power of
25     two.
26
27   * sn-check-bf
28     Does a brute-force check whether a given comparator network is a sort
29     network. It tries all 2^n 0-1-combinations resulting in exponential running
30     time, so only small networks can be tested within a reasonable time.
31
32   * sn-cut
33     Remove an input by assuming positive or negative infinity to be applied to
34     one input and "winning" or "losing" all comparisons.
35
36   * sn-info
37     Display information about a comparator network in human readable form.
38
39   * sn-merge
40     Combine two sort networks using the odd-even-merge network.
41
42   * sn-normalize
43     Reads a sort network and prints a normalized version to STDOUT. A
44     normalized sort network is a network in which all comparators face the same
45     way.
46
47   * sn-oddevenmerge
48     Creates a odd-even-merge-sort network with a given number of inputs and
49     prints the network to STDOUT.
50
51   * sn-shmoo
52     Prints a so-called "shmoo chart" of a comparator network to STDOUT. The
53     running time of this tool is exponential, roughly O(m * 2^n) where m is the
54     number of stages and n is the number of inputs.
55
56   * sn-show
57     Prints an ASCII version of a sort network to STDOUT.
58
59   * sn-tex
60     Prints the TikZ / TeX sources of a graphic representation of a comparator
61     network to STDOUT.
62
63
64 Author
65 ------
66
67 libsortnetwork has been written by Florian "octo" Forster.
68 You can reach Florian at <ff at octo.it>.