#!/u9/mayer/bin/sun4/perl
while (<>) {
    ($algo,$num,$tim,$acc) = /^(.{22}) *(\d+) : *(\S+) *(\S+)/;
    next unless $num;
    $algos{$algo}++;
    $nums{$num}++;
    $tim{$algo.$num}  = $tim;
    $acc{$algo.$num}  = $acc;
    $num{$algo.$num}  = $num;
    $algo{$algo.$num} = $algo;
    if ($num > 100 && $num < 10000) {
       $tim{$algo} += $tim;
       $num{$algo} += 1;
       }
}

@a = (
"fourea-real ;c_lib    ",
"fourea      ;c_lib    ",
"duhamel     ;c_lib    ",
"mayer-rad4  ;c_lib    ",
"numrec      ;numrec   ",
"sing        ;sing     ",
"wang        ;sing     ",
"mayer-rad4  ;Buneman0 ",
"mayer-rad4  ;Buneman2 ",
"mayer-rad4  ;Simple   ",
"nrec_real   ;numrec   ",
"sing_real   ;sing     ",
"sorensen-r  ;simple   ",
"mayer-real  ;Buneman2 ",
"mayer-fht   ;Simple   ");
for $a ( @a ) { $sortorder{$a} = ++$s; }

$ref = $tim{"mayer-rad4  ;Buneman2 "};

@algos = sort {$sortorder{$a} <=> $sortorder{$b}} keys %algos;
@nums = sort {$a<=>$b} keys %nums;
$a="A"; for $algo(@algos) {
    printf "%s:  $algo  (%-#6.3g)\n",$a++,$tim{$algo}/$num{$algo};
#    printf "%s:  $algo  (%-#6.3g)\n",$a++,$tim{$algo}/$ref;
}
print "#      ";
$a="A"; for (@algos) {print $a++."    ";}
print "\n";
for $n (@nums) {
    printf "%-5d: ",$n;
    for $a (@algos) {
        $p = ($tim{$a.$n} >= 0.1) ? 2 : 1;
        printf("%-#4.${p}g ",$tim{$a.$n});
    }
    printf("\n");
}
