#! /usr/bin/gawk -f # Last edited on 2000-09-21 17:26:38 by stolfi BEGIN { split("", ct_mg); split("", ct_m); split("", ct_g); split("", gsum_m); split("", msum_g); ct = 0; max_m = 6; max_g = 3; } /^ *$/ { next; } /./{ g = extract_gallows_attr($0); m = extract_mantle_attr($0, 0,0,0); ct_mg[m,g]++; ct_m[m]++; if (m > max_m) { max_m = m; } ct_g[g]++; if (g > max_g) { max_g = g; } if ((g != -1) && (m != -1)) { gsum_m[m] += g; msum_g[g] += m; } ct++; } END { printf " "; for (g=-1; g<=max_g; g++) { printf " g =%2s", (g == -1 ? "?":g); } printf " |"; printf " %5s %5s\n", "tot", "av.g"; printf " "; for (g=-1; g<=max_g; g++) { printf " %5s", "-----"; } printf " |"; printf " %5s\n", "-----"; for (m=-1; m<=max_m; m++) { printf "m =%2s", (m == -1 ? "?":m); for (g=-1; g<=max_g; g++) { printf " %5d", ct_mg[m,g]; } printf " |"; printf " %5d", ct_m[m]; printf " %5.2f\n", gsum_m[m]/(ct_m[m] > 0 ? ct_m[m] : 1); } printf " "; for (g=-1; g<=max_g; g++) { printf " %5s", "-----"; } printf " |"; printf " %5s\n", "-----"; printf " tot"; for (g=-1; g<=max_g; g++) { printf " %5d", ct_g[g]; } printf " |"; printf " %5d\n", ct; printf " av.m"; for (g=-1; g<=max_g; g++) { printf " %5.2f", msum_g[g]/(ct_g[g] > 0 ? ct_g[g] : 1); } printf " |"; printf " %5d\n", ct; # Data lines for summary: printf "\n"; printf "\n"; printf "ct_g"; for (g=-1; g<=max_g; g++) { printf " %5d", ct_g[g]; } printf "\n"; printf "ct_m"; for (m=-1; m<=max_m; m++) { printf " %5d", ct_m[m]; } printf "\n"; }