code: public static int[] evenlyLgSpaced(final int lgStart, final int lgEnd, final int points) {
      if (points <= 0) {
        throw new SketchesArgumentException("points must be > 0");
      }
      if ((lgEnd < 0) || (lgStart < 0)) {
        throw new SketchesArgumentException("lgStart and lgEnd must be >= 0.");
      }
      final int[] out = new int[points];
      out[0] = 1 << lgStart;
      if (points == 1) { return out; }
      final double delta = (lgEnd - lgStart) / (points - 1.0);
      for (int i = 1; i < points; i++) {
        final double mXpY = (delta * i) + lgStart;
        out[i] = (int)round(pow(2, mXpY));
      }
      return out;
    }
docs: Returns an int array of points that will be evenly spaced on a log axis.
  This is designed for Log_base2 numbers.
  @param lgStart the Log_base2 of the starting value. E.g., for 1 lgStart = 0.
  @param lgEnd the Log_base2 of the ending value. E.g. for 1024 lgEnd = 10.
  @param points the total number of points including the starting and ending values.
  @return an int array of points that will be evenly spaced on a log axis.