public double basicFunc(int func_no, double[] x) throws JMetalException {
   double result = 0.0;
   // This part is according to Matlab reference code
   switch (func_no) {
     case 0:
       result = Benchmark.weierstrass(x);
       break;
     case 1:
       result = Benchmark.EScafferF6(x);
       break;
     case 2:
       result = Benchmark.F8F2(x);
       break;
     case 3:
       result = Benchmark.ackley(x);
       break;
     case 4:
       result = Benchmark.rastrigin(x);
       break;
     case 5:
       result = Benchmark.griewank(x);
       break;
     case 6:
       result = Benchmark.EScafferF6NonCont(x);
       break;
     case 7:
       result = Benchmark.rastriginNonCont(x);
       break;
     case 8:
       result = Benchmark.elliptic(x);
       break;
     case 9:
       result = Benchmark.sphere_noise(x);
       break;
     default:
       throw new JMetalException("func_no is out of range.");
   }
   return (result);
 }