#!/usr/local/bin/perl

$sum1 = $sum2 = $max1 = $max2 = $n = 0;
$min1 = $min2 = 1000000;
$var1 = $var2 = 0;
$avg1 = $avg2 = 0;
$sumuser = $sumreal = $sumsys = $timen = 0;
$minuser = $minreal = $minsys = 100000;
$maxuser = $maxreal = $maxsys = 0;
@val1 = @val2 = ();
while( $i = shift(@ARGV))
{
    $_ = `tail -6 $i`;
    if (!(/total:[ \t]*([0-9]+)[ \t]*Zuordnung:[ \t]*([0-9]+)/))
    {
	print STDERR "Wrong format in $i\n";
	next;
    }
    $val1[$n] = $1;
    $val2[$n] = $2;
    $n++;
    $sum1 += $1;
    $max1 = $1 if($1 > $max1);
    $min1 = $1 if($1 < $min1);
    $sum2 += $2;
    $max2 = $2 if($2 > $max2);
    $min2 = $2 if($2 < $min2);
    if(!(/([0-9]+\.[0-9]+)[ \t]+real[ \t]+([0-9]+\.[0-9]+)[ \t]+user[ \t]+([0-9]+\.[0-9]+)[ \t]+sys/))
    {
	if(/real[ \t]*([0-9]+\.[0-9]+).*\nuser[ \t]*([0-9]+\.[0-9]+)\nsys[ \t]*([0-9]+\.[0-9])+/)
	{
	    $sumreal += $1;
	    $maxreal = $1 if($1 > $maxreal);
	    $minreal = $1 if($1 < $minreal);
	    $sumuser += $2;
	    $maxuser = $2 if($2 > $maxuser);
	    $minuser = $2 if($2 < $minuser);
	    $sumsys += $3;
	    $maxsys = $3 if($3 > $maxsys);
	    $minsys = $3 if($3 < $minsys);
	}
	else
	{
	    print STDERR "No time info\n";
	}
    }
    else
    {
	$sumsys += $3;
	$maxsys = $3 if($3 > $maxsys);
	$minsys = $3 if($3 < $minsys);
	$sumuser += $2;
	$maxuser = $2 if($2 > $maxuser);
	$minuser = $2 if($2 < $minuser);
	$sumreal += $1;
	$maxreal = $1 if($1 > $maxreal);
	$minreal = $1 if($1 < $minreal);
    }
    $timen++;
}
if(!$n)
{
    print STDERR "Nothing to do\n";
    exit(1);
}
$avg1 = $sum1 / $n;
$avg2 = $sum2 / $n;
for($i = 0; $i < $n; $i++)
{
    # print("v1:$val1[$i] v2:$val2[$i]\n");
    $var1 += ($avg1 - $val1[$i]) * ($avg1 - $val1[$i]);
    $var2 += ($avg2 - $val2[$i]) * ($avg2 - $val2[$i]);
}

printf "Score: avg:%7d max:%7d min:%7d stdabw:%7d\n", $avg1, $max1, $min1,
sqrt($var1);
printf "Eint.: avg:%7d max:%7d min:%7d stdabw:%7d\n", $avg2, $max2, $min2,
sqrt($var2);
exit(0) if(!$timen);
printf "Real : avg:%7.1f max:%7.1f min:%7.1f\n",
    $sumreal / $timen, $maxreal, $minreal;
printf "User : avg:%7.1f max:%7.1f min:%7.1f\n",
    $sumuser / $timen, $maxuser, $minuser;
printf "Sys  : avg:%7.1f max:%7.1f min:%7.1f\n",
    $sumsys / $timen, $maxsys, $minsys;
