#! /usr/bin/perl -w

$db=$ARGV[0];
$outfile = $ARGV[1];

open(FIN,"$db") || die "can't open the file $db\n";
open(FOUT,"> $outfile") || die "can't open the file $outfile\n";

@id_level=(0.0,0.05,0.1,0.15,1.0);
@aa=();

for($i=1;$i<=4;$i++)
{
$accuracy_sum=0.0;
$q_modeler_sum=0.0;
$q_developer_sum=0.0;
$q_combined_sum=0.0;
$coverage_sum=0.0;

$accuracy_u=0.0;
$q_modeler_u=0.0;
$q_developer_u=0.0;
$q_combined_u=0.0;
$coverage_u=0.0;

$accuracy_sd=0.0;
$q_modeler_sd=0.0;
$q_developer_sd=0.0;
$q_combined_sd=0.0;
$coverage_sd=0.0;

$total=0;
while(<FIN>)
{
	chomp;
	if(/^(.*?)\s+(.*?)\s+(.*?)\s+(.*?)\s+(.*?)\s+(.*?)\s+(.*?)\s+(.*?)$/)
	{
		if( $8 >= $id_level[$i-1] && $8 < $id_level[$i])
		{
			$accuracy_sum += $3;
			$q_modeler_sum += $4;
			$q_developer_sum += $5;
			$q_combined_sum += $6;
			$coverage_sum += $7;
			$total++;
		}
	}
}

$accuracy_u = $accuracy_sum / $total;
$q_modeler_u = $q_modeler_sum / $total;
$q_developer_u = $q_developer_sum / $total;	
$q_combined_u = $q_combined_sum / $total;
$coverage_u = $coverage_sum / $total;

seek(FIN,0,0);
$total=0;
while(<FIN>)
{
        chomp;
        if(/^(.*?)\s+(.*?)\s+(.*?)\s+(.*?)\s+(.*?)\s+(.*?)\s+(.*?)\s+(.*?)$/)
        {
		if( $8 >= $id_level[$i-1] && $8 < $id_level[$i])
                {
			$total++;
			$accuracy_sd += ($3 - $accuracy_u) * ($3 - $accuracy_u);
			$q_modeler_sd += ($4 - $q_modeler_u) * ($4 - $q_modeler_u);
			$q_developer_sd += ($5 - $q_developer_u) * ($5 - $q_developer_u);
			$q_combined_sd += ($6 - $q_combined_u) * ($6 - $q_combined_u);
			$coverage_sd += ($7 - $coverage_u) * ($7 - $coverage_u);
		}
	}
}

#print FOUT "Total = $total\n";

$accuracy_sd = sqrt(   $accuracy_sd * ( 1.0 / ($total-1.0))) / sqrt($total);
$q_modeler_sd = sqrt(   $q_modeler_sd * ( 1.0 / ($total-1.0))) / sqrt($total);
$q_developer_sd = sqrt(   $q_developer_sd * ( 1.0 / ($total-1.0))) / sqrt($total);
$q_combined_sd = sqrt(   $q_combined_sd * ( 1.0 / ($total-1.0))) / sqrt($total);
$coverage_sd = sqrt(   $coverage_sd * ( 1.0 / ($total-1.0))) / sqrt($total);

$aa[$i-1] =  "accuracy\t$accuracy_u\taccuracy_se\t$accuracy_sd\n";
$aa[$i-1+4] =  "q_modeler\t$q_modeler_u\tq_modeler_se\t$q_modeler_sd\n";
$aa[$i-1+8] =  "q_developer\t$q_developer_u\tq_developer_se\t$q_developer_sd\n";
$aa[$i-1+12] =  "q_combined\t$q_combined_u\tq_combined_se\t$q_combined_sd\n";
$aa[$i-1+16] =  "coverage\t$coverage_u\tcoverage_se\t$coverage_sd\n";
seek(FIN,0,0);
}

for($i=0;$i<20;$i++)
{
	print FOUT $aa[$i];
}

close(FIN);
close(FOUT);	
