File: average.awk

package info (click to toggle)
eprover 3.2.5%2Bds-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 14,504 kB
  • sloc: ansic: 104,396; csh: 13,135; python: 11,207; awk: 5,825; makefile: 554; sh: 400
file content (41 lines) | stat: -rwxr-xr-x 585 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
#!/opt/local/bin/gawk -f
#
# Compute average and standard deviation for a list of values.

BEGIN{
   i=0;
}

{
   if($0!="")
   {
      array[i++] = $0;
   }
   else
   {
      print("Ignoring empty line");
   }
}



END{
   total = i;
   sum = 0;
   for(i=0; i<total; i++)
   {
      sum+=array[i];
   }
   avg = sum/total;   

   var = 0;
   for(i=0; i<total; i++)
   {
      var += (array[i]-avg)*(array[i]-avg);
   }
   var = var/(total-1);
   dev = sqrt(var);
   
   printf("Sum over %4d elements: %f\n", total, sum);
   printf("Average               : %f +/- %f\n", avg, dev);
}