| line | stmt | bran | cond | sub | pod | time | code | 
| 1 |  |  |  |  |  |  | =pod | 
| 2 |  |  |  |  |  |  |  | 
| 3 |  |  |  |  |  |  | =encoding UTF-8 | 
| 4 |  |  |  |  |  |  |  | 
| 5 |  |  |  |  |  |  | =head1 NAME | 
| 6 |  |  |  |  |  |  |  | 
| 7 |  |  |  |  |  |  | Algorithm::Networksort::Best - Optimized Sorting Networks. | 
| 8 |  |  |  |  |  |  |  | 
| 9 |  |  |  |  |  |  | =cut | 
| 10 |  |  |  |  |  |  |  | 
| 11 |  |  |  |  |  |  | package Algorithm::Networksort::Best; | 
| 12 |  |  |  |  |  |  |  | 
| 13 | 2 |  |  | 2 |  | 2780 | use 5.010001; | 
|  | 2 |  |  |  |  | 5 |  | 
| 14 |  |  |  |  |  |  |  | 
| 15 | 2 |  |  | 2 |  | 8 | use Algorithm::Networksort; | 
|  | 2 |  |  |  |  | 3 |  | 
|  | 2 |  |  |  |  | 10 |  | 
| 16 | 2 |  |  | 2 |  | 786 | use Carp; | 
|  | 2 |  |  |  |  | 2 |  | 
|  | 2 |  |  |  |  | 119 |  | 
| 17 | 2 |  |  | 2 |  | 8 | use Exporter; | 
|  | 2 |  |  |  |  | 2 |  | 
|  | 2 |  |  |  |  | 61 |  | 
| 18 | 2 |  |  | 2 |  | 7 | use vars qw(@ISA %EXPORT_TAGS @EXPORT_OK); | 
|  | 2 |  |  |  |  | 2 |  | 
|  | 2 |  |  |  |  | 102 |  | 
| 19 | 2 |  |  | 2 |  | 7 | use strict; | 
|  | 2 |  |  |  |  | 2 |  | 
|  | 2 |  |  |  |  | 27 |  | 
| 20 | 2 |  |  | 2 |  | 6 | use warnings; | 
|  | 2 |  |  |  |  | 2 |  | 
|  | 2 |  |  |  |  | 4462 |  | 
| 21 |  |  |  |  |  |  |  | 
| 22 |  |  |  |  |  |  | @ISA = qw(Exporter); | 
| 23 |  |  |  |  |  |  |  | 
| 24 |  |  |  |  |  |  | %EXPORT_TAGS = ( | 
| 25 |  |  |  |  |  |  | 'all' => [ qw( | 
| 26 |  |  |  |  |  |  | nwsrt_best | 
| 27 |  |  |  |  |  |  | nw_best_names | 
| 28 |  |  |  |  |  |  | nw_best_title | 
| 29 |  |  |  |  |  |  | ) ], | 
| 30 |  |  |  |  |  |  | ); | 
| 31 |  |  |  |  |  |  |  | 
| 32 |  |  |  |  |  |  | @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } ); | 
| 33 |  |  |  |  |  |  |  | 
| 34 |  |  |  |  |  |  | our $VERSION = '2.01'; | 
| 35 |  |  |  |  |  |  |  | 
| 36 |  |  |  |  |  |  | # | 
| 37 |  |  |  |  |  |  | # The hashes represent each network, with a short, hopefully descriptive, key. | 
| 38 |  |  |  |  |  |  | # | 
| 39 |  |  |  |  |  |  | my %nw_best_by_name = ( | 
| 40 |  |  |  |  |  |  | floyd09 => { | 
| 41 |  |  |  |  |  |  | inputs => 9, | 
| 42 |  |  |  |  |  |  | depth => 9, | 
| 43 |  |  |  |  |  |  | title => '9-input Network by Robert W. Floyd', | 
| 44 |  |  |  |  |  |  | comparators => | 
| 45 |  |  |  |  |  |  | [[0,1], [3,4], [6,7], [1,2], [4,5], [7,8], [0,1], [3,4], | 
| 46 |  |  |  |  |  |  | [6,7], [0,3], [3,6], [0,3], [1,4], [4,7], [1,4], [2,5], | 
| 47 |  |  |  |  |  |  | [5,8], [2,5], [1,3], [5,7], [2,6], [4,6], [2,4], [2,3], | 
| 48 |  |  |  |  |  |  | [5,6]]}, | 
| 49 |  |  |  |  |  |  | senso09 => { | 
| 50 |  |  |  |  |  |  | inputs => 9, | 
| 51 |  |  |  |  |  |  | depth => 8, | 
| 52 |  |  |  |  |  |  | title => '9-Input Network via SENSO by V. K. Valsalam and R. Miikkulainen', | 
| 53 |  |  |  |  |  |  | comparators => | 
| 54 |  |  |  |  |  |  | [[2,6], [0,5], [1,4], [7,8], [0,7], [1,2], [3,5], [4,6], | 
| 55 |  |  |  |  |  |  | [5,8], [1,3], [6,8], [0,1], [4,5], [2,7], [3,7], [3,4], | 
| 56 |  |  |  |  |  |  | [5,6], [1,2], [1,3], [6,7], [4,5], [2,4], [5,6], [2,3], | 
| 57 |  |  |  |  |  |  | [4,5]]}, | 
| 58 |  |  |  |  |  |  | waksman10 => { | 
| 59 |  |  |  |  |  |  | inputs => 10, | 
| 60 |  |  |  |  |  |  | depth => 9, | 
| 61 |  |  |  |  |  |  | title => '10-Input Network by A. Waksman', | 
| 62 |  |  |  |  |  |  | comparators => | 
| 63 |  |  |  |  |  |  | [[4,9], [3,8], [2,7], [1,6], [0,5], [1,4], [6,9], [0,3], | 
| 64 |  |  |  |  |  |  | [5,8], [0,2], [3,6], [7,9], [0,1], [2,4], [5,7], [8,9], | 
| 65 |  |  |  |  |  |  | [1,2], [4,6], [7,8], [3,5], [2,5], [6,8], [1,3], [4,7], | 
| 66 |  |  |  |  |  |  | [2,3], [6,7], [3,4], [5,6], [4,5]]}, | 
| 67 |  |  |  |  |  |  | senso10 => { | 
| 68 |  |  |  |  |  |  | inputs => 10, | 
| 69 |  |  |  |  |  |  | depth => 8, | 
| 70 |  |  |  |  |  |  | title => '10-Input Network via SENSO by V. K. Valsalam and R. Miikkulainen', | 
| 71 |  |  |  |  |  |  | comparators => | 
| 72 |  |  |  |  |  |  | [[1,4], [7,8], [2,3], [5,6], [0,9], [2,5], [0,7], [8,9], | 
| 73 |  |  |  |  |  |  | [3,6], [4,9], [0,1], [0,2], [6,9], [3,5], [4,7], [1,8], | 
| 74 |  |  |  |  |  |  | [3,4], [5,8], [6,7], [1,2], [7,8], [1,3], [2,5], [4,6], | 
| 75 |  |  |  |  |  |  | [2,3], [6,7], [4,5], [3,4], [5,6]]}, | 
| 76 |  |  |  |  |  |  | shapirogreen11 => { | 
| 77 |  |  |  |  |  |  | inputs => 11, | 
| 78 |  |  |  |  |  |  | depth => 9, | 
| 79 |  |  |  |  |  |  | title => '11-Input by G. Shapiro and M. W. Green', | 
| 80 |  |  |  |  |  |  | comparators => | 
| 81 |  |  |  |  |  |  | [[0,1], [2,3], [4,5], [6,7], [8,9], [1,3], [5,7], [0,2], | 
| 82 |  |  |  |  |  |  | [4,6], [8,10], [1,2], [5,6], [9,10], [1,5], [6,10], [5,9], | 
| 83 |  |  |  |  |  |  | [2,6], [1,5], [6,10], [0,4], [3,7], [4,8], [0,4], [1,4], | 
| 84 |  |  |  |  |  |  | [7,10], [3,8], [2,3], [8,9], [2,4], [7,9], [3,5], [6,8], | 
| 85 |  |  |  |  |  |  | [3,4], [5,6], [7,8]]}, | 
| 86 |  |  |  |  |  |  | senso11 => { | 
| 87 |  |  |  |  |  |  | inputs => 11, | 
| 88 |  |  |  |  |  |  | depth => 10, | 
| 89 |  |  |  |  |  |  | title => '11-Input Network via SENSO by V. K. Valsalam and R. Miikkulainen', | 
| 90 |  |  |  |  |  |  | comparators => | 
| 91 |  |  |  |  |  |  | [[0,9], [2,8], [3,7], [4,6], [1,5], [1,3], [2,4], [6,10], | 
| 92 |  |  |  |  |  |  | [7,8], [5,9], [0,6], [1,2], [8,10], [9,10], [0,1], [5,7], | 
| 93 |  |  |  |  |  |  | [3,4], [6,8], [2,6], [1,5], [7,8], [4,9], [2,3], [8,9], | 
| 94 |  |  |  |  |  |  | [1,2], [4,6], [3,5], [6,7], [7,8], [2,3], [4,6], [5,6], | 
| 95 |  |  |  |  |  |  | [3,4], [6,7], [4,5]]}, | 
| 96 |  |  |  |  |  |  | shapirogreen12 => { | 
| 97 |  |  |  |  |  |  | inputs => 12, | 
| 98 |  |  |  |  |  |  | depth => 9, | 
| 99 |  |  |  |  |  |  | title => '12-Input by G. Shapiro and M. W. Green', | 
| 100 |  |  |  |  |  |  | comparators => | 
| 101 |  |  |  |  |  |  | [[0,1], [2,3], [4,5], [6,7], [8,9], [10,11], [1,3], [5,7], | 
| 102 |  |  |  |  |  |  | [9,11], [0,2], [4,6], [8,10], [1,2], [5,6], [9,10], [1,5], | 
| 103 |  |  |  |  |  |  | [6,10], [5,9], [2,6], [1,5], [6,10], [0,4], [7,11], [3,7], | 
| 104 |  |  |  |  |  |  | [4,8], [0,4], [7,11], [1,4], [7,10], [3,8], [2,3], [8,9], | 
| 105 |  |  |  |  |  |  | [2,4], [7,9], [3,5], [6,8], [3,4], [5,6], [7,8]]}, | 
| 106 |  |  |  |  |  |  | senso12 => { | 
| 107 |  |  |  |  |  |  | inputs => 12, | 
| 108 |  |  |  |  |  |  | depth => 9, | 
| 109 |  |  |  |  |  |  | title => '12-Input Network via SENSO by V. K. Valsalam and R. Miikkulainen', | 
| 110 |  |  |  |  |  |  | comparators => | 
| 111 |  |  |  |  |  |  | [[0,5], [2,7], [4,10], [3,6], [8,11], [1,9], [5,6], [1,8], | 
| 112 |  |  |  |  |  |  | [0,3], [2,4], [9,11], [7,10], [7,9], [10,11], [1,2], [6,11], | 
| 113 |  |  |  |  |  |  | [0,1], [4,8], [5,8], [1,4], [3,7], [2,5], [7,10], [6,9], | 
| 114 |  |  |  |  |  |  | [2,3], [4,6], [8,10], [1,2], [9,10], [6,8], [3,4], [8,9], | 
| 115 |  |  |  |  |  |  | [2,3], [5,7], [4,5], [6,7], [7,8], [5,6], [3,4]]}, | 
| 116 |  |  |  |  |  |  | end13 => { | 
| 117 |  |  |  |  |  |  | inputs => 13, | 
| 118 |  |  |  |  |  |  | depth => 10, | 
| 119 |  |  |  |  |  |  | title => '13-Input Network Generated by the END algorithm, by Hugues Juillé', | 
| 120 |  |  |  |  |  |  | comparators => | 
| 121 |  |  |  |  |  |  | [[1,7], [9,11], [3,4], [5,8], [0,12], [2,6], [0,1], [2,3], | 
| 122 |  |  |  |  |  |  | [4,6], [8,11], [7,12], [5,9], [0,2], [3,7], [10,11], [1,4], | 
| 123 |  |  |  |  |  |  | [6,12], [7,8], [11,12], [4,9], [6,10], [3,4], [5,6], [8,9], | 
| 124 |  |  |  |  |  |  | [10,11], [1,7], [2,6], [9,11], [1,3], [4,7], [8,10], [0,5], | 
| 125 |  |  |  |  |  |  | [2,5], [6,8], [9,10], [1,2], [3,5], [7,8], [4,6], [2,3], | 
| 126 |  |  |  |  |  |  | [4,5], [6,7], [8,9], [3,4], [5,6]]}, | 
| 127 |  |  |  |  |  |  | senso13 => { | 
| 128 |  |  |  |  |  |  | inputs => 13, | 
| 129 |  |  |  |  |  |  | depth => 12, | 
| 130 |  |  |  |  |  |  | title => '13-Input Network via SENSO by V. K. Valsalam and R. Miikkulainen', | 
| 131 |  |  |  |  |  |  | comparators => | 
| 132 |  |  |  |  |  |  | [[4,8], [0,9], [3,7], [2,5], [6,11], [1,12], [0,6], [2,4], | 
| 133 |  |  |  |  |  |  | [5,8], [7,12], [1,3], [10,11], [9,11], [0,1], [8,12], [8,10], | 
| 134 |  |  |  |  |  |  | [2,8], [11,12], [0,2], [7,9], [5,9], [3,6], [3,5], [1,8], | 
| 135 |  |  |  |  |  |  | [4,6], [4,7], [10,11], [6,9], [3,4], [1,2], [9,11], [1,3], | 
| 136 |  |  |  |  |  |  | [6,10], [2,4], [2,3], [9,10], [6,8], [5,7], [5,6], [7,8], | 
| 137 |  |  |  |  |  |  | [3,5], [8,9], [4,5], [6,7], [5,6]]}, | 
| 138 |  |  |  |  |  |  | green14 => { | 
| 139 |  |  |  |  |  |  | inputs => 14, | 
| 140 |  |  |  |  |  |  | depth => 10, | 
| 141 |  |  |  |  |  |  | title => '14-Input Network by M. W. Green', | 
| 142 |  |  |  |  |  |  | comparators => | 
| 143 |  |  |  |  |  |  | [[0,1], [2,3], [4,5], [6,7], [8,9], [10,11], [12,13], [0,2], | 
| 144 |  |  |  |  |  |  | [4,6], [8,10], [1,3], [5,7], [9,11], [0,4], [8,12], [1,5], | 
| 145 |  |  |  |  |  |  | [9,13], [2,6], [3,7], [0,8], [1,9], [2,10], [3,11], [4,12], | 
| 146 |  |  |  |  |  |  | [5,13], [5,10], [6,9], [3,12], [7,11], [1,2], [4,8], [1,4], | 
| 147 |  |  |  |  |  |  | [7,13], [2,8], [2,4], [5,6], [9,10], [11,13], [3,8], [7,12], | 
| 148 |  |  |  |  |  |  | [6,8], [10,12], [3,5], [7,9], [3,4], [5,6], [7,8], [9,10], | 
| 149 |  |  |  |  |  |  | [11,12], [6,7], [8,9]]}, | 
| 150 |  |  |  |  |  |  | senso14 => { | 
| 151 |  |  |  |  |  |  | inputs => 14, | 
| 152 |  |  |  |  |  |  | depth => 11, | 
| 153 |  |  |  |  |  |  | title => '14-Input Network via SENSO by V. K. Valsalam and R. Miikkulainen', | 
| 154 |  |  |  |  |  |  | comparators => | 
| 155 |  |  |  |  |  |  | [[0,6], [2,3], [8,12], [4,5], [1,10], [7,13], [9,11], [3,6], | 
| 156 |  |  |  |  |  |  | [4,7], [5,13], [1,8], [10,12], [0,2], [11,12], [0,9], [1,4], | 
| 157 |  |  |  |  |  |  | [6,13], [12,13], [0,1], [2,7], [3,5], [9,10], [3,8], [7,10], | 
| 158 |  |  |  |  |  |  | [5,8], [2,9], [6,11], [4,6], [8,12], [1,3], [10,11], [2,4], | 
| 159 |  |  |  |  |  |  | [11,12], [1,2], [8,10], [3,9], [3,4], [2,3], [10,11], [5,7], | 
| 160 |  |  |  |  |  |  | [7,8], [6,9], [5,6], [4,5], [8,9], [6,7], [9,10], [3,4], | 
| 161 |  |  |  |  |  |  | [5,6], [7,8], [6,7]]}, | 
| 162 |  |  |  |  |  |  | green15 => { | 
| 163 |  |  |  |  |  |  | inputs => 15, | 
| 164 |  |  |  |  |  |  | depth => 10, | 
| 165 |  |  |  |  |  |  | title => '15-Input Network by M. W. Green', | 
| 166 |  |  |  |  |  |  | comparators => | 
| 167 |  |  |  |  |  |  | [[0,1], [2,3], [4,5], [6,7], [8,9], [10,11], [12,13], [0,2], | 
| 168 |  |  |  |  |  |  | [4,6], [8,10], [12,14], [1,3], [5,7], [9,11], [0,4], [8,12], | 
| 169 |  |  |  |  |  |  | [1,5], [9,13], [2,6], [10,14], [3,7], [0,8], [1,9], [2,10], | 
| 170 |  |  |  |  |  |  | [3,11], [4,12], [5,13], [6,14], [5,10], [6,9], [3,12], [13,14], | 
| 171 |  |  |  |  |  |  | [7,11], [1,2], [4,8], [1,4], [7,13], [2,8], [11,14], [2,4], | 
| 172 |  |  |  |  |  |  | [5,6], [9,10], [11,13], [3,8], [7,12], [6,8], [10,12], [3,5], | 
| 173 |  |  |  |  |  |  | [7,9], [3,4], [5,6], [7,8], [9,10], [11,12], [6,7], [8,9]]}, | 
| 174 |  |  |  |  |  |  | senso15 => { | 
| 175 |  |  |  |  |  |  | inputs => 15, | 
| 176 |  |  |  |  |  |  | depth => 10, | 
| 177 |  |  |  |  |  |  | title => '15-Input Network via SENSO by V. K. Valsalam and R. Miikkulainen', | 
| 178 |  |  |  |  |  |  | comparators => | 
| 179 |  |  |  |  |  |  | [[12,13], [5,7], [3,11], [2,10], [4,9], [6,8], [1,14], [11,14], | 
| 180 |  |  |  |  |  |  | [1,3], [7,10], [0,12], [4,6], [2,5], [8,9], [0,2], [9,14], | 
| 181 |  |  |  |  |  |  | [1,4], [0,1], [5,6], [7,8], [11,13], [3,12], [5,11], [9,10], | 
| 182 |  |  |  |  |  |  | [8,12], [2,4], [6,13], [3,7], [2,3], [12,14], [10,13], [1,5], | 
| 183 |  |  |  |  |  |  | [13,14], [1,2], [3,5], [10,12], [12,13], [2,3], [8,11], [4,9], | 
| 184 |  |  |  |  |  |  | [10,11], [6,7], [5,6], [4,8], [7,9], [4,5], [9,11], [11,12], | 
| 185 |  |  |  |  |  |  | [3,4], [6,8], [7,10], [9,10], [5,6], [7,8], [8,9], [6,7]]}, | 
| 186 |  |  |  |  |  |  | green16 => { | 
| 187 |  |  |  |  |  |  | inputs => 16, | 
| 188 |  |  |  |  |  |  | depth => 10, | 
| 189 |  |  |  |  |  |  | title => '16-Input Network by M. W. Green', | 
| 190 |  |  |  |  |  |  | comparators => | 
| 191 |  |  |  |  |  |  | [[0,1], [2,3], [4,5], [6,7], [8,9], [10,11], [12,13], [14,15], | 
| 192 |  |  |  |  |  |  | [0,2], [4,6], [8,10], [12,14], [1,3], [5,7], [9,11], [13,15], | 
| 193 |  |  |  |  |  |  | [0,4], [8,12], [1,5], [9,13], [2,6], [10,14], [3,7], [11,15], | 
| 194 |  |  |  |  |  |  | [0,8], [1,9], [2,10], [3,11], [4,12], [5,13], [6,14], [7,15], | 
| 195 |  |  |  |  |  |  | [5,10], [6,9], [3,12], [13,14], [7,11], [1,2], [4,8], [1,4], | 
| 196 |  |  |  |  |  |  | [7,13], [2,8], [11,14], [2,4], [5,6], [9,10], [11,13], [3,8], | 
| 197 |  |  |  |  |  |  | [7,12], [6,8], [10,12], [3,5], [7,9], [3,4], [5,6], [7,8], | 
| 198 |  |  |  |  |  |  | [9,10], [11,12], [6,7], [8,9]]}, | 
| 199 |  |  |  |  |  |  | senso16 => { | 
| 200 |  |  |  |  |  |  | inputs => 16, | 
| 201 |  |  |  |  |  |  | depth => 10, | 
| 202 |  |  |  |  |  |  | title => '16-Input Network via SENSO by V. K. Valsalam and R. Miikkulainen', | 
| 203 |  |  |  |  |  |  | comparators => | 
| 204 |  |  |  |  |  |  | [[12,13], [5,7], [3,11], [2,10], [0,15], [4,9], [6,8], [1,14], | 
| 205 |  |  |  |  |  |  | [11,14], [1,3], [7,10], [0,12], [4,6], [2,5], [8,9], [13,15], | 
| 206 |  |  |  |  |  |  | [10,15], [0,2], [9,14], [1,4], [0,1], [14,15], [5,6], [7,8], | 
| 207 |  |  |  |  |  |  | [11,13], [3,12], [5,11], [9,10], [8,12], [2,4], [6,13], [3,7], | 
| 208 |  |  |  |  |  |  | [2,3], [12,14], [10,13], [1,5], [13,14], [1,2], [3,5], [10,12], | 
| 209 |  |  |  |  |  |  | [12,13], [2,3], [8,11], [4,9], [10,11], [6,7], [5,6], [4,8], | 
| 210 |  |  |  |  |  |  | [7,9], [4,5], [9,11], [11,12], [3,4], [6,8], [7,10], [9,10], | 
| 211 |  |  |  |  |  |  | [5,6], [7,8], [8,9], [6,7]]}, | 
| 212 |  |  |  |  |  |  | senso17 => { | 
| 213 |  |  |  |  |  |  | inputs => 17, | 
| 214 |  |  |  |  |  |  | depth => 17, | 
| 215 |  |  |  |  |  |  | title => '17-Input Network via SENSO by V. K. Valsalam and R. Miikkulainen', | 
| 216 |  |  |  |  |  |  | comparators => | 
| 217 |  |  |  |  |  |  | [[5,11], [4,9], [7,12], [0,14], [2,16], [1,15], [3,8], [6,13], | 
| 218 |  |  |  |  |  |  | [3,10], [8,13], [4,7], [9,12], [0,2], [14,16], [1,6], [10,15], | 
| 219 |  |  |  |  |  |  | [3,5], [11,13], [0,4], [12,16], [1,3], [13,15], [0,1], [15,16], | 
| 220 |  |  |  |  |  |  | [2,9], [7,14], [5,10], [6,11], [5,7], [6,8], [8,10], [2,3], | 
| 221 |  |  |  |  |  |  | [8,14], [9,11], [12,13], [4,6], [10,14], [4,5], [7,9], [11,13], | 
| 222 |  |  |  |  |  |  | [1,2], [14,15], [1,8], [13,15], [1,4], [2,5], [11,14], [13,14], | 
| 223 |  |  |  |  |  |  | [2,4], [6,12], [9,12], [3,10], [3,8], [6,7], [10,12], [3,6], | 
| 224 |  |  |  |  |  |  | [3,4], [12,13], [10,11], [5,6], [11,12], [4,5], [7,8], [8,9], | 
| 225 |  |  |  |  |  |  | [6,8], [9,11], [5,7], [6,7], [9,10], [8,9], [7,8]]}, | 
| 226 |  |  |  |  |  |  | sat17 => { | 
| 227 |  |  |  |  |  |  | inputs => 17, | 
| 228 |  |  |  |  |  |  | depth => 10, | 
| 229 |  |  |  |  |  |  | title => '17-Input Network by M. Codish, L. Cruz-Filipe, T. Ehlers, M. Müller, P. Schneider-Kamp', | 
| 230 |  |  |  |  |  |  | comparators => | 
| 231 |  |  |  |  |  |  | [[1,2], [3,4], [5,6], [7,8], [9,10], [11,12], [13,14], [15,16], | 
| 232 |  |  |  |  |  |  | [2,4], [6,8], [10,12], [14,16], [1,3], [5,7], [9,11], [13,15], | 
| 233 |  |  |  |  |  |  | [4,8], [12,16], [3,7], [11,15], [2,6], [10,14], [1,5], [9,13], | 
| 234 |  |  |  |  |  |  | [0,3], [4,7], [8,16], [1,13], [14,15], [6,12], [5,11], [2,10], | 
| 235 |  |  |  |  |  |  | [1,16], [3,6], [7,15], [4,14], [0,13], [2,5], [8,9], [10,11], | 
| 236 |  |  |  |  |  |  | [0,1], [2,8], [9,15], [3,4], [7,11], [12,14], [6,13], [5,10], | 
| 237 |  |  |  |  |  |  | [2,15], [4,10], [11,13], [3,8], [9,12], [1,5], [6,7], [1,3], | 
| 238 |  |  |  |  |  |  | [4,6], [7,9], [10,11], [13,15], [0,2], [5,8], [12,14], [0,1], | 
| 239 |  |  |  |  |  |  | [2,3], [4,5], [6,8], [9,11], [12,13], [14,15], [7,10], [1,2], | 
| 240 |  |  |  |  |  |  | [3,4], [5,6], [7,8], [9,10], [11,12], [13,14], [15,16]]}, | 
| 241 |  |  |  |  |  |  | alhajbaddar18 => { | 
| 242 |  |  |  |  |  |  | inputs => 18, | 
| 243 |  |  |  |  |  |  | depth => 11, | 
| 244 |  |  |  |  |  |  | title => '18-Input Network by Sherenaz Waleed Al-Haj Baddar', | 
| 245 |  |  |  |  |  |  | comparators => | 
| 246 |  |  |  |  |  |  | [[0,1], [2,3], [4,5], [6,7], [8,9], [10,11], [12,13], [14,15], | 
| 247 |  |  |  |  |  |  | [16,17], [0,2], [1,3], [4,6], [5,7], [8,10], [9,11], [12,17], | 
| 248 |  |  |  |  |  |  | [13,14], [15,16], [0,4], [1,5], [2,6], [3,7], [9,10], [8,12], | 
| 249 |  |  |  |  |  |  | [11,16], [13,15], [14,17], [7,16], [6,17], [3,5], [10,14], [11,12], | 
| 250 |  |  |  |  |  |  | [9,15], [2,4], [1,13], [0,8], [16,17], [7,14], [5,12], [3,15], | 
| 251 |  |  |  |  |  |  | [6,13], [4,10], [2,11], [8,9], [0,1], [1,8], [14,16], [6,9], | 
| 252 |  |  |  |  |  |  | [7,13], [5,11], [3,10], [4,15], [4,8], [14,15], [5,9], [7,11], | 
| 253 |  |  |  |  |  |  | [1,2], [12,16], [3,6], [10,13], [5,8], [11,14], [2,3], [12,13], | 
| 254 |  |  |  |  |  |  | [6,7], [9,10], [7,9], [3,5], [12,14], [2,4], [13,15], [6,8], | 
| 255 |  |  |  |  |  |  | [10,11], [13,14], [11,12], [9,10], [7,8], [5,6], [3,4], [12,13], | 
| 256 |  |  |  |  |  |  | [10,11], [8,9], [6,7], [4,5]]}, | 
| 257 |  |  |  |  |  |  | senso18 => { | 
| 258 |  |  |  |  |  |  | inputs => 18, | 
| 259 |  |  |  |  |  |  | depth => 15, | 
| 260 |  |  |  |  |  |  | title => '18-Input Network via SENSO by V. K. Valsalam and R. Miikkulainen', | 
| 261 |  |  |  |  |  |  | comparators => | 
| 262 |  |  |  |  |  |  | [[4,12], [5,13], [0,7], [10,17], [2,3], [14,15], [6,8], [9,11], | 
| 263 |  |  |  |  |  |  | [1,16], [2,6], [11,15], [1,9], [8,16], [4,10], [7,13], [3,12], | 
| 264 |  |  |  |  |  |  | [5,14], [0,2], [15,17], [1,4], [13,16], [0,5], [12,17], [0,1], | 
| 265 |  |  |  |  |  |  | [16,17], [3,7], [10,14], [6,9], [8,11], [2,15], [3,8], [9,14], | 
| 266 |  |  |  |  |  |  | [4,5], [12,13], [6,10], [2,6], [7,11], [1,4], [13,16], [14,15], | 
| 267 |  |  |  |  |  |  | [2,3], [11,15], [15,16], [1,2], [11,14], [3,6], [13,14], [3,4], | 
| 268 |  |  |  |  |  |  | [14,15], [2,3], [5,6], [11,12], [7,9], [8,10], [9,10], [7,8], | 
| 269 |  |  |  |  |  |  | [5,11], [6,12], [10,12], [5,7], [12,14], [3,5], [10,13], [4,7], | 
| 270 |  |  |  |  |  |  | [12,13], [4,5], [8,9], [6,9], [8,11], [9,12], [5,8], [6,7], | 
| 271 |  |  |  |  |  |  | [10,11], [6,8], [9,11], [7,10], [9,10], [7,8]]}, | 
| 272 |  |  |  |  |  |  | senso19 => { | 
| 273 |  |  |  |  |  |  | inputs => 19, | 
| 274 |  |  |  |  |  |  | depth => 15, | 
| 275 |  |  |  |  |  |  | title => '19-Input Network via SENSO by V. K. Valsalam and R. Miikkulainen', | 
| 276 |  |  |  |  |  |  | comparators => | 
| 277 |  |  |  |  |  |  | [[4,10], [3,12], [0,16], [7,14], [8,11], [6,13], [15,17], [1,5], | 
| 278 |  |  |  |  |  |  | [9,18], [2,5], [11,16], [7,9], [1,2], [6,15], [10,12], [3,4], | 
| 279 |  |  |  |  |  |  | [13,17], [0,8], [14,18], [5,16], [3,7], [17,18], [1,6], [4,15], | 
| 280 |  |  |  |  |  |  | [0,1], [12,16], [0,3], [16,18], [2,11], [9,10], [13,14], [6,8], | 
| 281 |  |  |  |  |  |  | [7,13], [2,9], [11,15], [1,7], [5,10], [12,17], [8,14], [4,6], | 
| 282 |  |  |  |  |  |  | [10,14], [3,4], [15,16], [1,2], [14,17], [1,3], [16,17], [5,7], | 
| 283 |  |  |  |  |  |  | [6,13], [5,6], [10,15], [2,4], [14,15], [2,5], [11,12], [15,16], | 
| 284 |  |  |  |  |  |  | [2,3], [8,9], [7,13], [9,12], [8,11], [9,10], [13,14], [5,8], | 
| 285 |  |  |  |  |  |  | [12,14], [14,15], [3,5], [4,6], [10,13], [4,8], [4,5], [13,14], | 
| 286 |  |  |  |  |  |  | [7,11], [6,11], [6,9], [7,8], [11,12], [6,7], [12,13], [5,6], | 
| 287 |  |  |  |  |  |  | [9,10], [10,11], [11,12], [8,9], [7,8], [9,10]]}, | 
| 288 |  |  |  |  |  |  | senso20 => { | 
| 289 |  |  |  |  |  |  | inputs => 20, | 
| 290 |  |  |  |  |  |  | depth => 14, | 
| 291 |  |  |  |  |  |  | title => '20-Input Network via SENSO by V. K. Valsalam and R. Miikkulainen', | 
| 292 |  |  |  |  |  |  | comparators => | 
| 293 |  |  |  |  |  |  | [[2,11], [8,17], [0,10], [9,19], [4,5], [14,15], [3,6], [13,16], | 
| 294 |  |  |  |  |  |  | [1,12], [7,18], [3,14], [5,16], [0,1], [18,19], [4,13], [6,15], | 
| 295 |  |  |  |  |  |  | [7,9], [10,12], [2,8], [11,17], [4,7], [12,15], [0,3], [16,19], | 
| 296 |  |  |  |  |  |  | [0,2], [17,19], [0,4], [15,19], [1,14], [5,18], [8,10], [9,11], | 
| 297 |  |  |  |  |  |  | [6,13], [5,9], [10,14], [1,3], [16,18], [6,8], [11,13], [2,7], | 
| 298 |  |  |  |  |  |  | [12,17], [1,5], [1,2], [14,18], [4,6], [13,15], [17,18], [15,18], | 
| 299 |  |  |  |  |  |  | [1,4], [3,9], [10,16], [2,3], [16,17], [13,17], [2,6], [15,17], | 
| 300 |  |  |  |  |  |  | [2,4], [7,8], [11,12], [5,10], [9,14], [8,12], [7,11], [3,7], | 
| 301 |  |  |  |  |  |  | [12,16], [3,5], [14,16], [15,16], [3,4], [5,6], [13,14], [14,15], | 
| 302 |  |  |  |  |  |  | [4,5], [10,11], [8,9], [11,12], [7,8], [7,10], [9,12], [5,7], | 
| 303 |  |  |  |  |  |  | [12,14], [9,13], [6,10], [6,7], [10,11], [12,13], [8,9], [9,11], | 
| 304 |  |  |  |  |  |  | [11,12], [8,10], [7,8], [9,10]]}, | 
| 305 |  |  |  |  |  |  | sat20 => { | 
| 306 |  |  |  |  |  |  | inputs => 20, | 
| 307 |  |  |  |  |  |  | depth => 11, | 
| 308 |  |  |  |  |  |  | title => '20-Input Network by M. Codish, L. Cruz-Filipe, T. Ehlers, M. Müller, P. Schneider-Kamp', | 
| 309 |  |  |  |  |  |  | comparators => | 
| 310 |  |  |  |  |  |  | [[0,1], [2,3], [4,5], [6,7], [8,9], [10,11], [12,13], [14,15], | 
| 311 |  |  |  |  |  |  | [16,17], [18,19], [1,3], [5,7], [9,11], [13,15], [17,19], [0,2], | 
| 312 |  |  |  |  |  |  | [4,6], [8,10], [12,14], [16,18], [3,7], [9,10], [15,19], [2,6], | 
| 313 |  |  |  |  |  |  | [14,18], [1,5], [13,17], [0,4], [12,16], [7,19], [6,18], [5,17], | 
| 314 |  |  |  |  |  |  | [4,16], [3,15], [2,14], [1,13], [0,12], [2,19], [3,8], [11,16], | 
| 315 |  |  |  |  |  |  | [17,18], [1,4], [5,15], [9,14], [10,13], [6,12], [0,19], [1,18], | 
| 316 |  |  |  |  |  |  | [2,6], [7,15], [16,17], [3,4], [8,14], [5,9], [10,11], [12,13], | 
| 317 |  |  |  |  |  |  | [1,3], [4,5], [9,12], [13,16], [17,18], [0,15], [7,14], [8,11], | 
| 318 |  |  |  |  |  |  | [6,10], [0,1], [3,6], [7,13], [14,17], [18,19], [2,4], [5,10], | 
| 319 |  |  |  |  |  |  | [11,12], [15,16], [8,9], [2,3], [4,8], [9,11], [12,15], [16,18], | 
| 320 |  |  |  |  |  |  | [1,17], [5,6], [7,10], [13,14], [1,3], [4,5], [7,9], [10,11], | 
| 321 |  |  |  |  |  |  | [12,13], [14,15], [16,17], [18,19], [0,2], [6,8], [1,2], [3,4], | 
| 322 |  |  |  |  |  |  | [5,6], [7,8], [9,10], [11,12], [13,14], [15,16]]}, | 
| 323 |  |  |  |  |  |  | senso21 => { | 
| 324 |  |  |  |  |  |  | inputs => 21, | 
| 325 |  |  |  |  |  |  | depth => 20, | 
| 326 |  |  |  |  |  |  | title => '21-Input Network via SENSO by V. K. Valsalam and R. Miikkulainen', | 
| 327 |  |  |  |  |  |  | comparators => | 
| 328 |  |  |  |  |  |  | [[5,9], [11,15], [1,19], [2,14], [6,18], [0,17], [3,20], [4,8], | 
| 329 |  |  |  |  |  |  | [12,16], [7,13], [1,7], [13,19], [2,11], [9,18], [4,12], [8,16], | 
| 330 |  |  |  |  |  |  | [3,5], [15,17], [0,10], [10,20], [0,6], [14,20], [2,3], [17,18], | 
| 331 |  |  |  |  |  |  | [1,4], [16,19], [0,1], [19,20], [0,2], [18,20], [7,8], [12,13], | 
| 332 |  |  |  |  |  |  | [9,10], [4,11], [5,6], [14,15], [10,11], [5,12], [8,15], [6,13], | 
| 333 |  |  |  |  |  |  | [7,14], [16,17], [1,3], [4,9], [5,7], [13,15], [11,18], [17,19], | 
| 334 |  |  |  |  |  |  | [1,2], [18,19], [4,5], [1,4], [15,19], [13,17], [2,7], [11,17], | 
| 335 |  |  |  |  |  |  | [9,14], [4,5], [15,18], [17,18], [2,4], [6,10], [8,16], [3,12], | 
| 336 |  |  |  |  |  |  | [10,14], [12,16], [3,8], [6,9], [14,16], [8,12], [3,6], [4,5], | 
| 337 |  |  |  |  |  |  | [15,16], [16,17], [3,4], [11,13], [5,7], [13,15], [6,7], [15,16], | 
| 338 |  |  |  |  |  |  | [4,5], [10,11], [9,11], [8,9], [11,12], [12,14], [8,10], [6,8], | 
| 339 |  |  |  |  |  |  | [14,15], [5,6], [12,13], [13,14], [6,8], [7,9], [10,11], [7,10], | 
| 340 |  |  |  |  |  |  | [7,8], [9,13], [11,12], [9,12], [9,11], [9,10]]}, | 
| 341 |  |  |  |  |  |  | alhajbaddar22 => { | 
| 342 |  |  |  |  |  |  | inputs => 22, | 
| 343 |  |  |  |  |  |  | depth => 12, | 
| 344 |  |  |  |  |  |  | title => '22-Input Network by Sherenaz Waleed Al-Haj Baddar', | 
| 345 |  |  |  |  |  |  | comparators => | 
| 346 |  |  |  |  |  |  | [[0,1], [2,3], [4,5], [6,7], [8,9], [10,11], [12,13], [14,15], | 
| 347 |  |  |  |  |  |  | [16,17], [18,19], [20,21], [2,4], [1,3], [0,5], [6,8], [7,9], | 
| 348 |  |  |  |  |  |  | [10,12], [11,13], [14,16], [15,17], [18,20], [19,21], [6,10], [7,11], | 
| 349 |  |  |  |  |  |  | [8,12], [9,13], [14,18], [15,19], [16,20], [17,21], [3,5], [1,4], | 
| 350 |  |  |  |  |  |  | [0,2], [9,17], [7,15], [11,19], [8,16], [3,12], [0,10], [1,18], | 
| 351 |  |  |  |  |  |  | [5,20], [13,21], [6,14], [2,4], [0,7], [17,20], [3,15], [9,18], | 
| 352 |  |  |  |  |  |  | [2,11], [4,16], [5,10], [1,8], [12,19], [13,14], [20,21], [0,6], | 
| 353 |  |  |  |  |  |  | [3,8], [12,18], [2,13], [14,16], [5,9], [10,15], [4,7], [11,17], | 
| 354 |  |  |  |  |  |  | [16,20], [18,19], [15,17], [12,14], [10,11], [7,9], [8,13], [4,5], | 
| 355 |  |  |  |  |  |  | [1,3], [2,6], [19,20], [16,17], [15,18], [11,14], [9,13], [10,12], | 
| 356 |  |  |  |  |  |  | [7,8], [3,5], [4,6], [1,2], [18,19], [14,16], [13,15], [11,12], | 
| 357 |  |  |  |  |  |  | [8,9], [5,10], [6,7], [2,3], [17,19], [16,18], [14,15], [12,13], | 
| 358 |  |  |  |  |  |  | [9,11], [8,10], [5,7], [3,6], [2,4], [17,18], [15,16], [13,14], | 
| 359 |  |  |  |  |  |  | [11,12], [9,10], [7,8], [5,6], [3,4], [16,17], [14,15], [12,13], | 
| 360 |  |  |  |  |  |  | [10,11], [8,9], [6,7], [4,5]]}, | 
| 361 |  |  |  |  |  |  | senso22 => { | 
| 362 |  |  |  |  |  |  | inputs => 22, | 
| 363 |  |  |  |  |  |  | depth => 15, | 
| 364 |  |  |  |  |  |  | title => '22-Input Network via SENSO by V. K. Valsalam and R. Miikkulainen', | 
| 365 |  |  |  |  |  |  | comparators => | 
| 366 |  |  |  |  |  |  | [[10,11], [2,8], [13,19], [3,15], [6,18], [1,16], [5,20], [0,17], | 
| 367 |  |  |  |  |  |  | [4,21], [7,9], [12,14], [0,4], [17,21], [3,12], [9,18], [1,2], | 
| 368 |  |  |  |  |  |  | [19,20], [7,13], [8,14], [5,6], [15,16], [5,7], [14,16], [1,10], | 
| 369 |  |  |  |  |  |  | [11,20], [0,3], [18,21], [0,5], [16,21], [0,1], [20,21], [6,8], | 
| 370 |  |  |  |  |  |  | [13,15], [2,4], [17,19], [9,11], [10,12], [2,7], [14,19], [3,9], | 
| 371 |  |  |  |  |  |  | [12,18], [6,13], [8,15], [4,11], [10,17], [5,10], [11,16], [3,6], | 
| 372 |  |  |  |  |  |  | [15,18], [1,2], [19,20], [1,3], [18,20], [1,5], [16,20], [2,6], | 
| 373 |  |  |  |  |  |  | [15,19], [11,18], [2,5], [16,19], [3,10], [2,3], [18,19], [9,12], | 
| 374 |  |  |  |  |  |  | [4,14], [7,17], [8,13], [12,17], [4,9], [13,14], [7,8], [4,7], | 
| 375 |  |  |  |  |  |  | [14,17], [4,5], [16,17], [17,18], [3,4], [6,10], [11,15], [5,6], | 
| 376 |  |  |  |  |  |  | [15,16], [4,5], [16,17], [9,12], [8,13], [10,13], [8,11], [7,9], | 
| 377 |  |  |  |  |  |  | [12,14], [7,8], [13,14], [14,16], [5,7], [9,10], [11,12], [6,9], | 
| 378 |  |  |  |  |  |  | [12,15], [14,15], [6,7], [8,11], [10,13], [8,9], [12,13], [7,8], | 
| 379 |  |  |  |  |  |  | [13,14], [10,11], [11,12], [9,10]]}, | 
| 380 |  |  |  |  |  |  | morwenn23 => { | 
| 381 |  |  |  |  |  |  | inputs => 23, | 
| 382 |  |  |  |  |  |  | depth => 18, | 
| 383 |  |  |  |  |  |  | title => '23-Input Network by Morwenn', | 
| 384 |  |  |  |  |  |  | comparators => | 
| 385 |  |  |  |  |  |  | [[0, 1], [2, 3], [4, 5], [6, 7], [8, 9], [10, 11], [12, 13], [14, 15], | 
| 386 |  |  |  |  |  |  | [16, 17], [18, 19], [20, 21], [1, 3], [5, 7], [9, 11], [0, 2], [4, 6], | 
| 387 |  |  |  |  |  |  | [8, 10], [13, 15], [17, 19], [12, 14], [16, 18], [20, 22], [1, 2], [5, 6], | 
| 388 |  |  |  |  |  |  | [9, 10], [13, 14], [17, 18], [21, 22], [1, 5], [6, 10], [13, 17], [18, 22], | 
| 389 |  |  |  |  |  |  | [5, 9], [2, 6], [17, 21], [14, 18], [1, 5], [6, 10], [0, 4], [7, 11], | 
| 390 |  |  |  |  |  |  | [13, 17], [18, 22], [12, 16], [3, 7], [4, 8], [15, 19], [16, 20], [0, 4], | 
| 391 |  |  |  |  |  |  | [7, 11], [12, 16], [1, 4], [7, 10], [3, 8], [13, 16], [19, 22], [15, 20], | 
| 392 |  |  |  |  |  |  | [2, 3], [8, 9], [14, 15], [20, 21], [2, 4], [7, 9], [3, 5], [6, 8], | 
| 393 |  |  |  |  |  |  | [14, 16], [19, 21], [15, 17], [18, 20], [3, 4], [5, 6], [7, 8], [15, 16], | 
| 394 |  |  |  |  |  |  | [17, 18], [19, 20], [0, 12], [1, 13], [2, 14], [3, 15], [4, 16], [5, 17], | 
| 395 |  |  |  |  |  |  | [6, 18], [7, 19], [8, 20], [9, 21], [10, 22], [2, 12], [3, 13], [10, 20], | 
| 396 |  |  |  |  |  |  | [11, 21], [4, 12], [5, 13], [6, 14], [7, 15], [8, 16], [9, 17], [10, 18], | 
| 397 |  |  |  |  |  |  | [11, 19], [8, 12], [9, 13], [10, 14], [11, 15], [6, 8], [10, 12], [14, 16], | 
| 398 |  |  |  |  |  |  | [7, 9], [11, 13], [15, 17], [1, 2], [3, 4], [5, 6], [7, 8], [9, 10], | 
| 399 |  |  |  |  |  |  | [11, 12], [13, 14], [15, 16], [17, 18], [19, 20], [21, 22]]}, | 
| 400 |  |  |  |  |  |  | senso23 => { | 
| 401 |  |  |  |  |  |  | inputs => 23, | 
| 402 |  |  |  |  |  |  | depth => 22, | 
| 403 |  |  |  |  |  |  | title => '23-Input Network via SENSO by V. K. Valsalam and R. Miikkulainen', | 
| 404 |  |  |  |  |  |  | comparators => | 
| 405 |  |  |  |  |  |  | [[1,20], [2,21], [5,13], [9,17], [0,7], [15,22], [4,11], [6,12], | 
| 406 |  |  |  |  |  |  | [10,16], [8,18], [14,19], [3,8], [4,14], [11,18], [2,6], [16,20], | 
| 407 |  |  |  |  |  |  | [0,9], [13,22], [5,15], [7,17], [1,10], [12,21], [8,19], [17,22], | 
| 408 |  |  |  |  |  |  | [0,5], [20,21], [1,2], [18,19], [3,4], [21,22], [0,1], [19,22], | 
| 409 |  |  |  |  |  |  | [0,3], [12,13], [9,10], [6,15], [7,16], [8,11], [11,14], [4,11], | 
| 410 |  |  |  |  |  |  | [6,8], [14,16], [17,20], [2,5], [9,12], [10,13], [15,18], [10,11], | 
| 411 |  |  |  |  |  |  | [4,7], [20,21], [1,2], [7,15], [3,9], [13,19], [16,18], [8,14], | 
| 412 |  |  |  |  |  |  | [4,6], [18,21], [1,4], [19,21], [1,3], [9,10], [11,13], [2,6], | 
| 413 |  |  |  |  |  |  | [16,20], [4,9], [13,18], [19,20], [2,3], [18,20], [2,4], [5,17], | 
| 414 |  |  |  |  |  |  | [12,14], [8,12], [5,7], [15,17], [5,8], [14,17], [3,5], [17,19], | 
| 415 |  |  |  |  |  |  | [3,4], [18,19], [6,10], [11,16], [13,16], [6,9], [16,17], [5,6], | 
| 416 |  |  |  |  |  |  | [4,5], [7,9], [17,18], [12,15], [14,15], [8,12], [7,8], [13,15], | 
| 417 |  |  |  |  |  |  | [15,17], [5,7], [9,10], [10,14], [6,11], [14,16], [15,16], [6,7], | 
| 418 |  |  |  |  |  |  | [10,11], [9,12], [11,13], [13,14], [8,9], [7,8], [14,15], [9,10], | 
| 419 |  |  |  |  |  |  | [8,9], [12,14], [11,12], [12,13], [10,11], [11,12]]}, | 
| 420 |  |  |  |  |  |  | morwenn24 => { | 
| 421 |  |  |  |  |  |  | inputs => 24, | 
| 422 |  |  |  |  |  |  | depth => 18, | 
| 423 |  |  |  |  |  |  | title => '24-Input Network by Morwenn', | 
| 424 |  |  |  |  |  |  | comparators => | 
| 425 |  |  |  |  |  |  | [[0,1], [2,3], [4,5], [6,7], [8,9], [10,11], [12,13], [14,15], | 
| 426 |  |  |  |  |  |  | [16,17], [18,19], [20,21], [22,23], [1,3], [5,7], [9,11], [0,2], | 
| 427 |  |  |  |  |  |  | [4,6], [8,10], [13,15], [17,19], [21,23], [12,14], [16,18], [20,22], | 
| 428 |  |  |  |  |  |  | [1,2], [5,6], [9,10], [13,14], [17,18], [21,22], [1,5], [6,10], | 
| 429 |  |  |  |  |  |  | [13,17], [18,22], [5,9], [2,6], [17,21], [14,18], [1,5], [6,10], | 
| 430 |  |  |  |  |  |  | [0,4], [7,11], [13,17], [18,22], [12,16], [19,23], [3,7], [4,8], | 
| 431 |  |  |  |  |  |  | [15,19], [16,20], [0,4], [7,11], [12,16], [19,23], [1,4], [7,10], | 
| 432 |  |  |  |  |  |  | [3,8], [13,16], [19,22], [15,20], [2,3], [8,9], [14,15], [20,21], | 
| 433 |  |  |  |  |  |  | [2,4], [7,9], [3,5], [6,8], [14,16], [19,21], [15,17], [18,20], | 
| 434 |  |  |  |  |  |  | [3,4], [5,6], [7,8], [15,16], [17,18], [19,20], [0,12], [1,13], | 
| 435 |  |  |  |  |  |  | [2,14], [3,15], [4,16], [5,17], [6,18], [7,19], [8,20], [9,21], | 
| 436 |  |  |  |  |  |  | [10,22], [11,23], [2,12], [3,13], [10,20], [11,21], [4,12], [5,13], | 
| 437 |  |  |  |  |  |  | [6,14], [7,15], [8,16], [9,17], [10,18], [11,19], [8,12], [9,13], | 
| 438 |  |  |  |  |  |  | [10,14], [11,15], [6,8], [10,12], [14,16], [7,9], [11,13], [15,17], | 
| 439 |  |  |  |  |  |  | [1,2], [3,4], [5,6], [7,8], [9,10], [11,12], [13,14], [15,16], | 
| 440 |  |  |  |  |  |  | [17,18], [19,20], [21,22]]}, | 
| 441 |  |  |  |  |  |  | ); | 
| 442 |  |  |  |  |  |  |  | 
| 443 |  |  |  |  |  |  | # | 
| 444 |  |  |  |  |  |  | # The hash that will return the keys by input number. | 
| 445 |  |  |  |  |  |  | # | 
| 446 |  |  |  |  |  |  | my %nw_best_by_input; | 
| 447 |  |  |  |  |  |  |  | 
| 448 |  |  |  |  |  |  | # | 
| 449 |  |  |  |  |  |  | # Set up %nw_best_by_input. | 
| 450 |  |  |  |  |  |  | # | 
| 451 |  |  |  |  |  |  | INIT | 
| 452 |  |  |  |  |  |  | { | 
| 453 | 2 |  |  | 2 |  | 119395 | for my $k (keys %nw_best_by_name) | 
| 454 |  |  |  |  |  |  | { | 
| 455 | 58 |  |  |  |  | 28 | my $inputs = ${$nw_best_by_name{$k}}{inputs}; | 
|  | 58 |  |  |  |  | 77 |  | 
| 456 |  |  |  |  |  |  |  | 
| 457 | 58 | 100 |  |  |  | 86 | if (exists $nw_best_by_input{$inputs}) | 
| 458 |  |  |  |  |  |  | { | 
| 459 | 26 |  |  |  |  | 17 | push @{$nw_best_by_input{$inputs}}, $k; | 
|  | 26 |  |  |  |  | 42 |  | 
| 460 |  |  |  |  |  |  | } | 
| 461 |  |  |  |  |  |  | else | 
| 462 |  |  |  |  |  |  | { | 
| 463 | 32 |  |  |  |  | 61 | $nw_best_by_input{$inputs} = [$k]; | 
| 464 |  |  |  |  |  |  | } | 
| 465 |  |  |  |  |  |  | #print STDERR "$inputs: " . join(", ", @{$nw_best_by_input{$inputs}}) . "\n"; | 
| 466 |  |  |  |  |  |  | } | 
| 467 |  |  |  |  |  |  | } | 
| 468 |  |  |  |  |  |  |  | 
| 469 |  |  |  |  |  |  | =head1 SYNOPSIS | 
| 470 |  |  |  |  |  |  |  | 
| 471 |  |  |  |  |  |  | use Algorithm::Networksort; | 
| 472 |  |  |  |  |  |  | use Algorithm::Networksort::Best qw(:all); | 
| 473 |  |  |  |  |  |  |  | 
| 474 |  |  |  |  |  |  | my $inputs = 9; | 
| 475 |  |  |  |  |  |  |  | 
| 476 |  |  |  |  |  |  | # | 
| 477 |  |  |  |  |  |  | # First find if any networks exist for the size you want. | 
| 478 |  |  |  |  |  |  | # | 
| 479 |  |  |  |  |  |  | my @nwkeys = nw_best_names($inputs); | 
| 480 |  |  |  |  |  |  |  | 
| 481 |  |  |  |  |  |  | # | 
| 482 |  |  |  |  |  |  | # For each sorting network, show the comparators. | 
| 483 |  |  |  |  |  |  | # | 
| 484 |  |  |  |  |  |  | for my $name (@nwkeys) | 
| 485 |  |  |  |  |  |  | { | 
| 486 |  |  |  |  |  |  | my $nw = nwsrt_best(name => $name); | 
| 487 |  |  |  |  |  |  |  | 
| 488 |  |  |  |  |  |  | # | 
| 489 |  |  |  |  |  |  | # Print the list, and print the graph of the list. | 
| 490 |  |  |  |  |  |  | # | 
| 491 |  |  |  |  |  |  | print $nw->title(), "\n", $nw->formatted(), "\n\n"; | 
| 492 |  |  |  |  |  |  | print $nw->graph_text(), "\n\n"; | 
| 493 |  |  |  |  |  |  | } | 
| 494 |  |  |  |  |  |  |  | 
| 495 |  |  |  |  |  |  | =head1 DESCRIPTION | 
| 496 |  |  |  |  |  |  |  | 
| 497 |  |  |  |  |  |  | For some inputs, sorting networks have been discovered that are more efficient | 
| 498 |  |  |  |  |  |  | than those generated by rote algorithms. The "Best" module allows you to use | 
| 499 |  |  |  |  |  |  | those networks instead. | 
| 500 |  |  |  |  |  |  |  | 
| 501 |  |  |  |  |  |  | There is no guarantee that it will return the best network for | 
| 502 |  |  |  |  |  |  | all cases. Usually "best" means that the module will return a lower number of | 
| 503 |  |  |  |  |  |  | comparators for the number of inputs than the algorithms in Algorithm::Networksort | 
| 504 |  |  |  |  |  |  | will return. Some will simply have a lower number of comparators, others may have | 
| 505 |  |  |  |  |  |  | a smaller depth but an equal or greater number of comparators. | 
| 506 |  |  |  |  |  |  |  | 
| 507 |  |  |  |  |  |  | The current networks are: | 
| 508 |  |  |  |  |  |  |  | 
| 509 |  |  |  |  |  |  | =head2 9-Input Networks | 
| 510 |  |  |  |  |  |  |  | 
| 511 |  |  |  |  |  |  | =over 4 | 
| 512 |  |  |  |  |  |  |  | 
| 513 |  |  |  |  |  |  | =item 'floyd09' | 
| 514 |  |  |  |  |  |  |  | 
| 515 |  |  |  |  |  |  | A 9-input network of depth 9 discovered by R. W. Floyd. | 
| 516 |  |  |  |  |  |  |  | 
| 517 |  |  |  |  |  |  | =item 'senso09' | 
| 518 |  |  |  |  |  |  |  | 
| 519 |  |  |  |  |  |  | A 9-input network of depth 8 found using the SENSO program by | 
| 520 |  |  |  |  |  |  | V. K. Valsalam and R. Miikkulaainen. | 
| 521 |  |  |  |  |  |  |  | 
| 522 |  |  |  |  |  |  | =back | 
| 523 |  |  |  |  |  |  |  | 
| 524 |  |  |  |  |  |  | =head2 10-Input Networks | 
| 525 |  |  |  |  |  |  |  | 
| 526 |  |  |  |  |  |  | =over 4 | 
| 527 |  |  |  |  |  |  |  | 
| 528 |  |  |  |  |  |  | =item 'waksman10' | 
| 529 |  |  |  |  |  |  |  | 
| 530 |  |  |  |  |  |  | a 10-input network of depth 9 found by A. Waksman. | 
| 531 |  |  |  |  |  |  |  | 
| 532 |  |  |  |  |  |  | =item 'senso10' | 
| 533 |  |  |  |  |  |  |  | 
| 534 |  |  |  |  |  |  | A 10-input network of depth 8 found using the SENSO program by | 
| 535 |  |  |  |  |  |  | V. K. Valsalam and R. Miikkulaainen. | 
| 536 |  |  |  |  |  |  |  | 
| 537 |  |  |  |  |  |  | =back | 
| 538 |  |  |  |  |  |  |  | 
| 539 |  |  |  |  |  |  | =head2 11-Input Networks | 
| 540 |  |  |  |  |  |  |  | 
| 541 |  |  |  |  |  |  | =over 4 | 
| 542 |  |  |  |  |  |  |  | 
| 543 |  |  |  |  |  |  | =item 'shapirogreen11' | 
| 544 |  |  |  |  |  |  |  | 
| 545 |  |  |  |  |  |  | An 11-input network of depth 9 found by G. Shapiro and M. W. Green. | 
| 546 |  |  |  |  |  |  |  | 
| 547 |  |  |  |  |  |  | =item 'senso11' | 
| 548 |  |  |  |  |  |  |  | 
| 549 |  |  |  |  |  |  | A 11-input network of depth 10 found using the SENSO program by | 
| 550 |  |  |  |  |  |  | V. K. Valsalam and R. Miikkulaainen. | 
| 551 |  |  |  |  |  |  |  | 
| 552 |  |  |  |  |  |  | =back | 
| 553 |  |  |  |  |  |  |  | 
| 554 |  |  |  |  |  |  | =head2 12-Input Networks | 
| 555 |  |  |  |  |  |  |  | 
| 556 |  |  |  |  |  |  | =over 4 | 
| 557 |  |  |  |  |  |  |  | 
| 558 |  |  |  |  |  |  | =item 'shapirogreen12' | 
| 559 |  |  |  |  |  |  |  | 
| 560 |  |  |  |  |  |  | A 12-input network of depth 9 found by G. Shapiro and M. W. Green. | 
| 561 |  |  |  |  |  |  |  | 
| 562 |  |  |  |  |  |  | =item 'senso12' | 
| 563 |  |  |  |  |  |  |  | 
| 564 |  |  |  |  |  |  | A 12-input network of depth 9 found using the SENSO program by | 
| 565 |  |  |  |  |  |  | V. K. Valsalam and R. Miikkulaainen. | 
| 566 |  |  |  |  |  |  |  | 
| 567 |  |  |  |  |  |  | =back | 
| 568 |  |  |  |  |  |  |  | 
| 569 |  |  |  |  |  |  | =head2 13-Input Networks | 
| 570 |  |  |  |  |  |  |  | 
| 571 |  |  |  |  |  |  | =over 4 | 
| 572 |  |  |  |  |  |  |  | 
| 573 |  |  |  |  |  |  | =item 'end13' | 
| 574 |  |  |  |  |  |  |  | 
| 575 |  |  |  |  |  |  | A 13-input network of depth 10 generated by the END algorithm, by Hugues Juillé. | 
| 576 |  |  |  |  |  |  |  | 
| 577 |  |  |  |  |  |  | =item 'senso13' | 
| 578 |  |  |  |  |  |  |  | 
| 579 |  |  |  |  |  |  | A 13-input network of depth 12 found using the SENSO program by | 
| 580 |  |  |  |  |  |  | V. K. Valsalam and R. Miikkulaainen. | 
| 581 |  |  |  |  |  |  |  | 
| 582 |  |  |  |  |  |  | =back | 
| 583 |  |  |  |  |  |  |  | 
| 584 |  |  |  |  |  |  | =head2 14-Input Networks | 
| 585 |  |  |  |  |  |  |  | 
| 586 |  |  |  |  |  |  | =over 4 | 
| 587 |  |  |  |  |  |  |  | 
| 588 |  |  |  |  |  |  | =item 'green14' | 
| 589 |  |  |  |  |  |  |  | 
| 590 |  |  |  |  |  |  | A 14-input network of depth 10 created by taking the 16-input network of | 
| 591 |  |  |  |  |  |  | M. W. Green and removing inputs 15 and 16. | 
| 592 |  |  |  |  |  |  |  | 
| 593 |  |  |  |  |  |  | =item 'senso14' | 
| 594 |  |  |  |  |  |  |  | 
| 595 |  |  |  |  |  |  | A 14-input network of depth 11 found using the SENSO program by | 
| 596 |  |  |  |  |  |  | V. K. Valsalam and R. Miikkulaainen. | 
| 597 |  |  |  |  |  |  |  | 
| 598 |  |  |  |  |  |  | =back | 
| 599 |  |  |  |  |  |  |  | 
| 600 |  |  |  |  |  |  | =head2 15-Input Networks | 
| 601 |  |  |  |  |  |  |  | 
| 602 |  |  |  |  |  |  | =over 4 | 
| 603 |  |  |  |  |  |  |  | 
| 604 |  |  |  |  |  |  | =item 'green15' | 
| 605 |  |  |  |  |  |  |  | 
| 606 |  |  |  |  |  |  | A 15-input network of depth 10 created by taking the 16-input network of | 
| 607 |  |  |  |  |  |  | M. W. Green and removing the 16th input. | 
| 608 |  |  |  |  |  |  |  | 
| 609 |  |  |  |  |  |  | =item 'senso15' | 
| 610 |  |  |  |  |  |  |  | 
| 611 |  |  |  |  |  |  | A 15-input network of depth 10 found using the SENSO program by | 
| 612 |  |  |  |  |  |  | V. K. Valsalam and R. Miikkulaainen. | 
| 613 |  |  |  |  |  |  |  | 
| 614 |  |  |  |  |  |  | =back | 
| 615 |  |  |  |  |  |  |  | 
| 616 |  |  |  |  |  |  | =head2 16-Input Networks | 
| 617 |  |  |  |  |  |  |  | 
| 618 |  |  |  |  |  |  | =over 4 | 
| 619 |  |  |  |  |  |  |  | 
| 620 |  |  |  |  |  |  | =item 'green16' | 
| 621 |  |  |  |  |  |  |  | 
| 622 |  |  |  |  |  |  | A 16-input network of depth 10 found by M. W. Green. | 
| 623 |  |  |  |  |  |  |  | 
| 624 |  |  |  |  |  |  | =item 'senso16' | 
| 625 |  |  |  |  |  |  |  | 
| 626 |  |  |  |  |  |  | A 16-input network of depth 10 found using the SENSO program by | 
| 627 |  |  |  |  |  |  | V. K. Valsalam and R. Miikkulaainen. | 
| 628 |  |  |  |  |  |  |  | 
| 629 |  |  |  |  |  |  | =back | 
| 630 |  |  |  |  |  |  |  | 
| 631 |  |  |  |  |  |  | =head2 17-Input Networks | 
| 632 |  |  |  |  |  |  |  | 
| 633 |  |  |  |  |  |  | =over 4 | 
| 634 |  |  |  |  |  |  |  | 
| 635 |  |  |  |  |  |  | =item 'senso17' | 
| 636 |  |  |  |  |  |  |  | 
| 637 |  |  |  |  |  |  | A 17-input network of depth 17 found using the SENSO program by | 
| 638 |  |  |  |  |  |  | V. K. Valsalam and R. Miikkulaainen. | 
| 639 |  |  |  |  |  |  |  | 
| 640 |  |  |  |  |  |  | =item 'sat17' | 
| 641 |  |  |  |  |  |  |  | 
| 642 |  |  |  |  |  |  | 17-input network of depth 10 found by M. Codish, L. Cruz-Filipe, T. Ehlers, | 
| 643 |  |  |  |  |  |  | M. Müller, P. Schneider-Kamp. | 
| 644 |  |  |  |  |  |  |  | 
| 645 |  |  |  |  |  |  | =back | 
| 646 |  |  |  |  |  |  |  | 
| 647 |  |  |  |  |  |  | =head2 18-Input Networks | 
| 648 |  |  |  |  |  |  |  | 
| 649 |  |  |  |  |  |  | =over 4 | 
| 650 |  |  |  |  |  |  |  | 
| 651 |  |  |  |  |  |  | =item 'alhajbaddar18' | 
| 652 |  |  |  |  |  |  |  | 
| 653 |  |  |  |  |  |  | 18-input network of depth 11 found by Sherenaz Waleed Al-Haj Baddar. | 
| 654 |  |  |  |  |  |  |  | 
| 655 |  |  |  |  |  |  | =item 'senso18' | 
| 656 |  |  |  |  |  |  |  | 
| 657 |  |  |  |  |  |  | A 18-input network of depth 15 found using the SENSO program by | 
| 658 |  |  |  |  |  |  | V. K. Valsalam and R. Miikkulaainen. | 
| 659 |  |  |  |  |  |  |  | 
| 660 |  |  |  |  |  |  | =back | 
| 661 |  |  |  |  |  |  |  | 
| 662 |  |  |  |  |  |  | =head2 19-Input Networks | 
| 663 |  |  |  |  |  |  |  | 
| 664 |  |  |  |  |  |  | =over 4 | 
| 665 |  |  |  |  |  |  |  | 
| 666 |  |  |  |  |  |  | =item 'senso19' | 
| 667 |  |  |  |  |  |  |  | 
| 668 |  |  |  |  |  |  | A 19-input network of depth 15 found using the SENSO program by | 
| 669 |  |  |  |  |  |  | V. K. Valsalam and R. Miikkulaainen. | 
| 670 |  |  |  |  |  |  |  | 
| 671 |  |  |  |  |  |  | =back | 
| 672 |  |  |  |  |  |  |  | 
| 673 |  |  |  |  |  |  | =head2 20-Input Networks | 
| 674 |  |  |  |  |  |  |  | 
| 675 |  |  |  |  |  |  | =over 4 | 
| 676 |  |  |  |  |  |  |  | 
| 677 |  |  |  |  |  |  | =item 'sat20' | 
| 678 |  |  |  |  |  |  |  | 
| 679 |  |  |  |  |  |  | 20-input network of depth 11 found by M. Codish, L. Cruz-Filipe, T. Ehlers, M. Müller, P. Schneider-Kamp. | 
| 680 |  |  |  |  |  |  |  | 
| 681 |  |  |  |  |  |  | =item 'senso20' | 
| 682 |  |  |  |  |  |  |  | 
| 683 |  |  |  |  |  |  | A 20-input network of depth 14 found using the SENSO program by | 
| 684 |  |  |  |  |  |  | V. K. Valsalam and R. Miikkulaainen. | 
| 685 |  |  |  |  |  |  |  | 
| 686 |  |  |  |  |  |  | =back | 
| 687 |  |  |  |  |  |  |  | 
| 688 |  |  |  |  |  |  | =head2 21-Input Networks | 
| 689 |  |  |  |  |  |  |  | 
| 690 |  |  |  |  |  |  | =over 4 | 
| 691 |  |  |  |  |  |  |  | 
| 692 |  |  |  |  |  |  | =item 'senso21' | 
| 693 |  |  |  |  |  |  |  | 
| 694 |  |  |  |  |  |  | A 21-input network of depth 20 found using the SENSO program by | 
| 695 |  |  |  |  |  |  | V. K. Valsalam and R. Miikkulaainen. | 
| 696 |  |  |  |  |  |  |  | 
| 697 |  |  |  |  |  |  | =back | 
| 698 |  |  |  |  |  |  |  | 
| 699 |  |  |  |  |  |  | =head2 22-Input Networks | 
| 700 |  |  |  |  |  |  |  | 
| 701 |  |  |  |  |  |  | =over 4 | 
| 702 |  |  |  |  |  |  |  | 
| 703 |  |  |  |  |  |  | =item 'alhajbaddar22' | 
| 704 |  |  |  |  |  |  |  | 
| 705 |  |  |  |  |  |  | 22-input network of depth 12 found by Sherenaz Waleed Al-Haj Baddar. | 
| 706 |  |  |  |  |  |  |  | 
| 707 |  |  |  |  |  |  | =item 'senso22' | 
| 708 |  |  |  |  |  |  |  | 
| 709 |  |  |  |  |  |  | A 22-input network of depth 15 found using the SENSO program by | 
| 710 |  |  |  |  |  |  | V. K. Valsalam and R. Miikkulaainen. | 
| 711 |  |  |  |  |  |  |  | 
| 712 |  |  |  |  |  |  | =back | 
| 713 |  |  |  |  |  |  |  | 
| 714 |  |  |  |  |  |  | =head2 23-Input Networks | 
| 715 |  |  |  |  |  |  |  | 
| 716 |  |  |  |  |  |  | =over 4 | 
| 717 |  |  |  |  |  |  |  | 
| 718 |  |  |  |  |  |  | =item 'morwenn23' | 
| 719 |  |  |  |  |  |  |  | 
| 720 |  |  |  |  |  |  | A 23-input network of depth 18 found by Morwenn, by taking the 24-input | 
| 721 |  |  |  |  |  |  | network and removing the final input. | 
| 722 |  |  |  |  |  |  |  | 
| 723 |  |  |  |  |  |  | =item 'senso23' | 
| 724 |  |  |  |  |  |  |  | 
| 725 |  |  |  |  |  |  | A 23-input network of depth 22 found using the SENSO program by | 
| 726 |  |  |  |  |  |  | V. K. Valsalam and R. Miikkulaainen. | 
| 727 |  |  |  |  |  |  |  | 
| 728 |  |  |  |  |  |  | =back | 
| 729 |  |  |  |  |  |  |  | 
| 730 |  |  |  |  |  |  | =head2 24-Input Networks | 
| 731 |  |  |  |  |  |  |  | 
| 732 |  |  |  |  |  |  | =over 4 | 
| 733 |  |  |  |  |  |  |  | 
| 734 |  |  |  |  |  |  | =item 'morwenn24' | 
| 735 |  |  |  |  |  |  |  | 
| 736 |  |  |  |  |  |  | A 24-input network of depth 18 found by Morwenn | 
| 737 |  |  |  |  |  |  | L<https://github.com/Morwenn/cpp-sort/wiki/Original-research#sorting-networks-23-and-24>. | 
| 738 |  |  |  |  |  |  |  | 
| 739 |  |  |  |  |  |  | =back | 
| 740 |  |  |  |  |  |  |  | 
| 741 |  |  |  |  |  |  | =head2 Export | 
| 742 |  |  |  |  |  |  |  | 
| 743 |  |  |  |  |  |  | None by default. There is only one available export tag, ':all', which | 
| 744 |  |  |  |  |  |  | exports the functions to create and use sorting networks. The functions are | 
| 745 |  |  |  |  |  |  | nwsrt_best(), nw_best_names(), and nw_best_title(). | 
| 746 |  |  |  |  |  |  |  | 
| 747 |  |  |  |  |  |  | =head2 Functions | 
| 748 |  |  |  |  |  |  |  | 
| 749 |  |  |  |  |  |  | =head3 nwsrt_best | 
| 750 |  |  |  |  |  |  |  | 
| 751 |  |  |  |  |  |  | Return the Algorithm::Networksort object, given a key name. Also takes | 
| 752 |  |  |  |  |  |  | an optional title to override the default. | 
| 753 |  |  |  |  |  |  |  | 
| 754 |  |  |  |  |  |  | $nw = nwsrt_best(name => 'floyd09', title => "Compare depth to Bose-Nelson"); | 
| 755 |  |  |  |  |  |  |  | 
| 756 |  |  |  |  |  |  | =cut | 
| 757 |  |  |  |  |  |  |  | 
| 758 |  |  |  |  |  |  | sub nwsrt_best | 
| 759 |  |  |  |  |  |  | { | 
| 760 | 0 |  |  | 0 | 1 | 0 | my(%opts) = @_; | 
| 761 |  |  |  |  |  |  |  | 
| 762 | 0 | 0 |  |  |  | 0 | croak "No network chosen" unless (exists $opts{name}); | 
| 763 | 0 |  |  |  |  | 0 | my $name = $opts{name}; | 
| 764 |  |  |  |  |  |  |  | 
| 765 | 0 | 0 |  |  |  | 0 | croak "Unknown network name '$name'" unless (exists $nw_best_by_name{$name}); | 
| 766 | 0 |  |  |  |  | 0 | my %nw_struct = %{ $nw_best_by_name{$name} }; | 
|  | 0 |  |  |  |  | 0 |  | 
| 767 | 0 |  | 0 |  |  | 0 | my $title = $opts{title} // $nw_struct{title}; | 
| 768 |  |  |  |  |  |  |  | 
| 769 |  |  |  |  |  |  | return Algorithm::Networksort->new( | 
| 770 |  |  |  |  |  |  | algorithm => 'none', | 
| 771 |  |  |  |  |  |  | inputs => $nw_struct{inputs}, | 
| 772 |  |  |  |  |  |  | comparators => $nw_struct{comparators}, | 
| 773 |  |  |  |  |  |  | depth => $nw_struct{depth}, | 
| 774 | 0 |  |  |  |  | 0 | title => $title, | 
| 775 |  |  |  |  |  |  | nwid => $name, | 
| 776 |  |  |  |  |  |  | ); | 
| 777 |  |  |  |  |  |  | } | 
| 778 |  |  |  |  |  |  |  | 
| 779 |  |  |  |  |  |  | =head3 nw_best_names | 
| 780 |  |  |  |  |  |  |  | 
| 781 |  |  |  |  |  |  | Return the list of keys for sorting networks of a giving input size. | 
| 782 |  |  |  |  |  |  |  | 
| 783 |  |  |  |  |  |  | @names = nw_best_names(13); | 
| 784 |  |  |  |  |  |  |  | 
| 785 |  |  |  |  |  |  | Each name key is a valid option for the name argument of nwsrt_best(). | 
| 786 |  |  |  |  |  |  |  | 
| 787 |  |  |  |  |  |  | An unlikely example: | 
| 788 |  |  |  |  |  |  |  | 
| 789 |  |  |  |  |  |  | my $inputs = 12; | 
| 790 |  |  |  |  |  |  |  | 
| 791 |  |  |  |  |  |  | for my $name (nwsrt_best_names()) | 
| 792 |  |  |  |  |  |  | { | 
| 793 |  |  |  |  |  |  | my $nw = nwsrt_best(inputs => $inputs, name => $name); | 
| 794 |  |  |  |  |  |  | print $nw->title(), "\n", $nw, "\n"; | 
| 795 |  |  |  |  |  |  | } | 
| 796 |  |  |  |  |  |  |  | 
| 797 |  |  |  |  |  |  | =cut | 
| 798 |  |  |  |  |  |  |  | 
| 799 |  |  |  |  |  |  | sub nw_best_names | 
| 800 |  |  |  |  |  |  | { | 
| 801 | 1 |  |  | 1 | 1 | 988 | my($inputs) = @_; | 
| 802 |  |  |  |  |  |  |  | 
| 803 | 1 | 50 |  |  |  | 16 | return keys %nw_best_by_name unless (defined $inputs); | 
| 804 |  |  |  |  |  |  |  | 
| 805 | 0 | 0 |  |  |  |  | unless (exists $nw_best_by_input{$inputs}) | 
| 806 |  |  |  |  |  |  | { | 
| 807 | 0 |  |  |  |  |  | carp "No 'best' sorting networks exist for size $inputs"; | 
| 808 | 0 |  |  |  |  |  | return (); | 
| 809 |  |  |  |  |  |  | } | 
| 810 |  |  |  |  |  |  |  | 
| 811 | 0 |  |  |  |  |  | return @{$nw_best_by_input{$inputs}}; | 
|  | 0 |  |  |  |  |  |  | 
| 812 |  |  |  |  |  |  | } | 
| 813 |  |  |  |  |  |  |  | 
| 814 |  |  |  |  |  |  | =head3 nw_best_title | 
| 815 |  |  |  |  |  |  |  | 
| 816 |  |  |  |  |  |  | Return a descriptive title for the network, given a name key. | 
| 817 |  |  |  |  |  |  |  | 
| 818 |  |  |  |  |  |  | $title = nw_best_title($key); | 
| 819 |  |  |  |  |  |  |  | 
| 820 |  |  |  |  |  |  | These are the titles for the available networks. By themselves, they provide | 
| 821 |  |  |  |  |  |  | a readable list of choices for an interactive program. They are not to be | 
| 822 |  |  |  |  |  |  | confused with a sorting network's title, which may be set by the programmer. | 
| 823 |  |  |  |  |  |  |  | 
| 824 |  |  |  |  |  |  | =cut | 
| 825 |  |  |  |  |  |  |  | 
| 826 |  |  |  |  |  |  | sub nw_best_title | 
| 827 |  |  |  |  |  |  | { | 
| 828 | 0 |  |  | 0 | 1 |  | my $key = shift; | 
| 829 |  |  |  |  |  |  |  | 
| 830 | 0 | 0 |  |  |  |  | unless (exists $nw_best_by_name{$key}) | 
| 831 |  |  |  |  |  |  | { | 
| 832 | 0 |  |  |  |  |  | carp "Unknown 'best' name '$key'."; | 
| 833 | 0 |  |  |  |  |  | return ""; | 
| 834 |  |  |  |  |  |  | } | 
| 835 |  |  |  |  |  |  |  | 
| 836 | 0 |  |  |  |  |  | return $nw_best_by_name{$key}{title}; | 
| 837 |  |  |  |  |  |  | } | 
| 838 |  |  |  |  |  |  |  | 
| 839 |  |  |  |  |  |  | 1; | 
| 840 |  |  |  |  |  |  | __END__ | 
| 841 |  |  |  |  |  |  |  | 
| 842 |  |  |  |  |  |  | =head1 ACKNOWLEDGMENTS | 
| 843 |  |  |  |  |  |  |  | 
| 844 |  |  |  |  |  |  | L<Doug Hoyte|https://github.com/hoytech> pointed out Sherenaz Waleed | 
| 845 |  |  |  |  |  |  | Al-Haj Baddar's paper. | 
| 846 |  |  |  |  |  |  |  | 
| 847 |  |  |  |  |  |  | L<Morwenn|https://github.com/Morwenn> found for me the SAT and SENSO | 
| 848 |  |  |  |  |  |  | papers, contributed 23-input and 24-input sorting networks, and caught | 
| 849 |  |  |  |  |  |  | documentation errors. | 
| 850 |  |  |  |  |  |  |  | 
| 851 |  |  |  |  |  |  | =head1 SEE ALSO | 
| 852 |  |  |  |  |  |  |  | 
| 853 |  |  |  |  |  |  | =head2 Non-algorithmic discoveries | 
| 854 |  |  |  |  |  |  |  | 
| 855 |  |  |  |  |  |  | =over 3 | 
| 856 |  |  |  |  |  |  |  | 
| 857 |  |  |  |  |  |  | =item | 
| 858 |  |  |  |  |  |  |  | 
| 859 |  |  |  |  |  |  | The networks by Floyd, Green, Shapiro, and Waksman are in | 
| 860 |  |  |  |  |  |  | Donald E. Knuth's B<The Art of Computer Programming, Vol. 3: | 
| 861 |  |  |  |  |  |  | Sorting and Searching> (2nd ed.), Addison Wesley Longman Publishing Co., Inc., | 
| 862 |  |  |  |  |  |  | Redwood City, CA, 1998. | 
| 863 |  |  |  |  |  |  |  | 
| 864 |  |  |  |  |  |  | =item | 
| 865 |  |  |  |  |  |  |  | 
| 866 |  |  |  |  |  |  | The Evolving Non-Determinism (END) algorithm by Hugues Juillé has found | 
| 867 |  |  |  |  |  |  | more efficient sorting networks: | 
| 868 |  |  |  |  |  |  | L<http://www.cs.brandeis.edu/~hugues/sorting_networks.html>. | 
| 869 |  |  |  |  |  |  |  | 
| 870 |  |  |  |  |  |  | =item | 
| 871 |  |  |  |  |  |  |  | 
| 872 |  |  |  |  |  |  | The 18 and 22 input networks found by Sherenaz Waleed Al-Haj Baddar | 
| 873 |  |  |  |  |  |  | are described in her dissertation "Finding Better Sorting Networks" at | 
| 874 |  |  |  |  |  |  | L<http://etd.ohiolink.edu/view.cgi?acc_num=kent1239814529>. | 
| 875 |  |  |  |  |  |  |  | 
| 876 |  |  |  |  |  |  | =item | 
| 877 |  |  |  |  |  |  |  | 
| 878 |  |  |  |  |  |  | The Symmetry and Evolution based Network Sort Optimization (SENSO) found more | 
| 879 |  |  |  |  |  |  | networks for inputs of 9 through 23. | 
| 880 |  |  |  |  |  |  |  | 
| 881 |  |  |  |  |  |  | =item | 
| 882 |  |  |  |  |  |  |  | 
| 883 |  |  |  |  |  |  | Morwenn's 23 and 24-input networks are described at | 
| 884 |  |  |  |  |  |  | L<https://github.com/Morwenn/cpp-sort/wiki/Original-research#sorting-networks-23-and-24>. | 
| 885 |  |  |  |  |  |  |  | 
| 886 |  |  |  |  |  |  | =item | 
| 887 |  |  |  |  |  |  |  | 
| 888 |  |  |  |  |  |  | Ian Parberry, "A computer assisted optimal depth lower bound for sorting | 
| 889 |  |  |  |  |  |  | networks with nine inputs", L<http://www.eng.unt.edu/ian/pubs/snverify.pdf>. | 
| 890 |  |  |  |  |  |  |  | 
| 891 |  |  |  |  |  |  | =back | 
| 892 |  |  |  |  |  |  |  | 
| 893 |  |  |  |  |  |  | =head1 AUTHOR | 
| 894 |  |  |  |  |  |  |  | 
| 895 |  |  |  |  |  |  | John M. Gamble may be found at B<jgamble@cpan.org> | 
| 896 |  |  |  |  |  |  |  | 
| 897 |  |  |  |  |  |  | =cut | 
| 898 |  |  |  |  |  |  |  |