docs: public float[] evaluate(float[] z) {
      float[] y;
  
      y = normalise(z);
      y = t1(y, k);
      y = t2(y, k);
      try {
        y = t3(y);
      } catch (JMetalException e) {
        JMetalLogger.logger.log(Level.SEVERE, "Error", e);
      }
      y = t4(y, k, m);
  
  
      float[] result = new float[m];
      float[] x = calculateX(y);
      for (int m = 1; m <= this.m - 1; m++) {
        result[m - 1] = d * x[this.m - 1] + s[m - 1] * (new Shapes()).convex(x, m);
      }
  
      result[m - 1] = d * x[m - 1] + s[m - 1] * (new Shapes()).mixed(x, 5, (float) 1.0);
  
      return result;
    }