Imported Upstream version 0.12.7
[bowtie.git] / scripts / gen_dnamasks2colormask.pl
1 print "uint8_t dnamasks2colormask[16][16] = {\n";
2 print "\t         /* 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15 */\n";
3 my %color = (
4         "0,0" => 0, "0,1" => 1, "0,2" => 2, "0,3" => 3,
5         "1,0" => 1, "1,1" => 0, "1,2" => 3, "1,3" => 2,
6         "2,0" => 2, "2,1" => 3, "2,2" => 0, "2,3" => 1,
7         "3,0" => 3, "3,1" => 2, "3,2" => 1, "3,3" => 0
8 );
9 for(my $i = 0; $i < 16; $i++) {
10         printf "\t/* %2d */ { ", $i;
11         for(my $j = 0; $j < 16; $j++) {
12                 my $mask = 0;
13                 for(my $x = 0 ; $x < 4; $x++) {
14                         for(my $y = 0 ; $y < 4; $y++) {
15                                 if(($i & (1<<$x)) != 0 && ($j & (1<<$y)) != 0) {
16                                         $mask |= (1 << $color{"$x,$y"});
17                                 }
18                         }
19                 }
20                 $mask >= 0 || die;
21                 printf "%2d", $mask;
22                 if($j == 15) {
23                         print " }";
24                         print "," if $i < 15;
25                         print "\n";
26                 } else {
27                         print ", ";
28                 }
29         }
30 }
31 print "};\n";