static short[] subShortArray(short[] b, int start, int end) {
  start = max(start, 0); end = min(end, l(b));
  if (start == 0 && end == l(b)) ret b;
  if (start >= end) ret new short[0];
  short[] x = new short[end-start];
  System.arraycopy(b, start, x, 0, end-start);
  ret x;
}