Computes the parameters depending on :math:`\lambda`.

        Notes
        -----
        It needs to be called again if :math:`\lambda` changes during
        evolution.

        Parameters
        ----------
        params:
            A dictionary of the manually set parameters.

def computeParams(self, params):
        """Computes the parameters depending on :math:`\lambda`.

        Notes
        -----
        It needs to be called again if :math:`\lambda` changes during
        evolution.

        Parameters
        ----------
        params:
            A dictionary of the manually set parameters.
        """
        self.mu = params.get("mu", int(self.lambda_ / 2))
        rweights = params.get("weights", "superlinear")
        if rweights == "superlinear":
            self.weights = numpy.log(self.mu + 0.5) - \
                numpy.log(numpy.arange(1, self.mu + 1))
        elif rweights == "linear":
            self.weights = self.mu + 0.5 - numpy.arange(1, self.mu + 1)
        elif rweights == "equal":
            self.weights = numpy.ones(self.mu)
        else:
            raise RuntimeError("Unknown weights : %s" % rweights)

        self.weights /= sum(self.weights)
        self.mueff = 1. / sum(self.weights ** 2)

        self.cc = params.get("ccum", 4. / (self.dim + 4.))
        self.cs = params.get("cs", (self.mueff + 2.) /
                             (self.dim + self.mueff + 3.))
        self.ccov1 = params.get(
            "ccov1", 2. / ((self.dim + 1.3) ** 2 + self.mueff))
        self.ccovmu = params.get("ccovmu", 2. * (
            self.mueff - 2. + 1. / self.mueff) / (
            (self.dim + 2.) ** 2 + self.mueff))
        self.ccovmu = min(1 - self.ccov1, self.ccovmu)
        self.damps = 1. + 2. * \
            max(0, numpy.sqrt((self.mueff - 1.) / (self.dim + 1.)) - 1.) + \
            self.cs
        self.damps = params.get("damps", self.damps)
        return