docs: public void evaluate(DoubleSolution solution) {
      double[] f = new double[getNumberOfObjectives()];
  
      double g = this.evalG(solution);
      f[0] = (1 + g) * Math.cos(0.5 * Math.PI * solution.getVariableValue(0))
      		* Math.cos(0.5 * Math.PI * solution.getVariableValue(1));
      f[1] = (1 + g) * Math.cos(0.5 * Math.PI * solution.getVariableValue(0))
      		* Math.sin(0.5 * Math.PI * solution.getVariableValue(1));
      f[2] = (1 + g) * Math.sin(0.5 * Math.PI * solution.getVariableValue(0));
  
      solution.setObjective(0, f[0]);
      solution.setObjective(1, f[1]);
      solution.setObjective(2, f[2]);
    }