code: public static float[] copyOfRange(final float[] original, int from, final int to, final int step) {
          N.checkFromToIndex(from < to ? from : (to == -1 ? 0 : to), from < to ? to : from, original.length);
  
          if (step == 0) {
              throw new IllegalArgumentException("The input parameter 'by' can not be zero");
          }
  
          if (from == to || from < to != step > 0) {
              return N.EMPTY_FLOAT_ARRAY;
          }
  
          if (step == 1) {
              return copyOfRange(original, from, to);
          }
  
          from = from > to ? N.min(original.length - 1, from) : from;
          final int len = (to - from) / step + ((to - from) % step == 0 ? 0 : 1);
          final float[] copy = new float[len];
  
          for (int i = 0, j = from; i < len; i++, j += step) {
              copy[i] = original[j];
          }
  
          return copy;
      }
docs: Copy all the elements in <code>original</code>, through <code>to</code>-<code>from</code>, by <code>step</code>.
  
  @param original
  @param from
  @param to
  @param step
  @return
  @see N#copyOfRange(int[], int, int, int)