docs: private void doMutation(double probability, DoubleSolution solution) {
      double rnd, deltaq, tempDelta;
      double y, yl, yu;
  
      for (int i = 0; i < solution.getNumberOfVariables(); i++) {
        if (randomGenerator.nextDouble() <= probability) {
          y = solution.getVariableValue(i);
          yl = solution.getLowerBound(i) ;
          yu = solution.getUpperBound(i) ;
          rnd = randomGenerator.nextDouble();
            
          tempDelta = Math.pow(rnd, -delta);
          deltaq = 0.5 * (rnd - 0.5) * (1 - tempDelta);
            
          y = y + deltaq * (yu - yl);
          y = solutionRepair.repairSolutionVariableValue(y, yl, yu);
          solution.setVariableValue(i, y);
        }
      }
    }