#! /usr/bin/gawk -f

# Reads a file with EEG, SYN, and SBS data.  Checks the numbers for valid ranges.
# Writes the same data in a more readable format.

BEGIN {
  nt = 0;           # Number of frames read.
  split("", vmax)
  split("", vmin)
  nc = 21;         # 19 electrodes, synthetic signal, SBS signal.
  for (i = 1; i <= nc; i++) { vmax[i] = -1e100; vmin[i] = +1e100; } 
}

// { 
  nt = nt + 1; # One more frame read.
  if (NF != nc) {
    printf "** BUG NF = $d\n", NF > "/dev/stderr";
    exit(1);
  }
  for (i = 1; i <= nc; i++) {
    vi = $(i);
    if (vi > vmax[i]) { vmax[i] = vi; }
    if (vi < vmin[i]) { vmin[i] = vi; }
    if (i == nc) {
      xi = sprintf("%3.1f", vi);
    } else {
      xi = sprintf("%+8.3f", vi);
    }
    printf " %s", xi
  }
  printf "\n"
  next
}

END {
  printf "%8d frames read\n", nt > "/dev/stderr"
  for (i = 1; i <= nc; i++) {
    printf "chanel %2d : [ %+12.4e _ %+12.4e ]\n", i, vmin[i], vmax[i] > "/dev/stderr"
  }
}