sS formatElapsedTimeWithAppropriateUnit(double seconds) {
  if (seconds >= 1) ret formatDouble(seconds, 3) + " s";
  double ms = seconds*1000;
  if (ms >= 1) ret formatDouble(ms, 3) + " ms";
  double us = ms*1000;
  if (us >= 1) ret formatDouble(us, 3) + " µs";
  double ns = us*1000;
  ret formatDouble(ns, 3) + " ns";
}