File: do_crossval_silent.awk

package info (click to toggle)
eprover 2.6%2Bds-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 21,288 kB
  • sloc: ansic: 331,111; csh: 12,026; python: 10,178; awk: 5,825; makefile: 461; sh: 389
file content (47 lines) | stat: -rwxr-xr-x 763 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#!/opt/local/bin/gawk -f

BEGIN{
   args = "";
   for(i=1; ARGV[i]; i++)
   {
      args = args " " ARGV[i];
   }
}

function success_rate(file    , tmp, succ)
{
   pipe = "tsm_classify " args " " file;
   while ((pipe | getline tmp) > 0)
   {
      if(match(tmp, /successes\,/))
      {
	 succ = substr(tmp, RSTART+RLENGTH);
      }
   }	 
   close(pipe);

   return 0.0+succ;
}

BEGIN{
   
   sum = 0;
   count = 0;
   for(i=1; i<=10; i++)
   {
      succ[i] = success_rate(sprintf("crossval%02d", i));
      count++;
      sum+=succ[i];
   }
   avg = sum/count;   

   var = 0;
   for(i=1; i<=10; i++)
   {
      var += (succ[i]-avg)*(succ[i]-avg);
   }
   var = var/(count-1);
   dev = sqrt(var);
   
   print "Success rate: " avg " +/-" dev " (" args ")";
}