11 my ($addr,$p2h,$p8h,$p1d,$p1w,$p1m) = split(/\s+/,$_);
12 if ($p1m =~ /\A([1-9.]+)%\Z/) {
14 $max=$x if ($x > $max);
18 for my $k (keys %ret) {
27 return 1-(1-$a)*(1-$b);
33 for my $k1 (keys %{$f1}) {
34 if (defined $f2->{$k1}) {
35 $ret{$k1} = merge($f1->{$k1}, $f2->{$k1});
37 $ret{$k1} = merge($f1->{$k1}, 0);
40 for my $k2 (keys %{$f2}) {
41 if (!defined $f1->{$k2}) {
42 $ret{$k2} = merge(0, $f2->{$k2});
50 for my $file (@ARGV) {
51 my $r = loadFile($file);
53 $res = combine($res,$r);
60 for my $addr (sort { $res->{$b} <=> $res->{$a} } (keys %{$res})) {
61 if ($addr =~ /\A(\d+)\.(\d+)\.(\d+)\.(\d+):8333/) {
62 my $a = $1*0x1000000 + $2*0x10000 + $3*0x100 + $4;
63 printf "0x%08x %s %g%%\n",$a,$addr,(1-((1-$res->{$addr}) ** (1/$n)))*100;