docs: public float[] t3(float[] z, int k, int M) {
      float[] result = new float[M];
  
      for (int i = 1; i <= M - 1; i++) {
        int head = (i - 1) * k / (M - 1) + 1;
        int tail = i * k / (M - 1);
        float[] subZ = subVector(z, head - 1, tail - 1);
        result[i - 1] = (new Transformations()).rNonsep(subZ, k / (M - 1));
      }
  
      int head = k + 1;
      int tail = z.length;
      int l = z.length - k;
      float[] subZ = subVector(z, head - 1, tail - 1);
      result[M - 1] = (new Transformations()).rNonsep(subZ, l);
  
      return result;
    }