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