docs: def infer_x(self, y):
          """Infer probable x from input y
          @param y  the desired output for infered x.
          @return   a list of probable x
          """
          OptimizedInverseModel.infer_x(self, y)
          if self.fmodel.size() == 0:
              return self._random_x()
  
          x_guesses = [self._guess_x_simple(y)[0]]
  
          result = []
          for xg in x_guesses:
              res = cma.fmin(self._error, xg, self.cmaes_sigma,
                             options={'bounds':[self.lower, self.upper],
                             'verb_log':0,
                             'verb_disp':False,
                             'maxfevals':self.maxfevals,
                             'seed': self.seed})
              result.append((res[1], res[0]))
  
          return [xi for fi, xi in sorted(result)]