'Computes the parameters depending on :math:`\lambda`. It needs to
be called again if :math:`\lambda` changes during evolution.
:param params: A dictionary of the manually set parameters.'

def computeParams(self, params):

    self.mu = params.get('mu', int((self.lambda_ / 2)))
    rweights = params.get('weights', 'superlinear')
    if (rweights == 'superlinear'):
        self.weights = (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.0 / sum((self.weights ** 2)))
    self.cc = params.get('ccum', (4.0 / (self.dim + 4.0)))
    self.cs = params.get('cs', ((self.mueff + 2.0) / ((self.dim + self.mueff) + 3.0)))
    self.ccov1 = params.get('ccov1', (2.0 / (((self.dim + 1.3) ** 2) + self.mueff)))
    self.ccovmu = params.get('ccovmu', ((2.0 * ((self.mueff - 2.0) + (1.0 / self.mueff))) / (((self.dim + 2.0) ** 2) + self.mueff)))
    self.ccovmu = min((1 - self.ccov1), self.ccovmu)
    self.damps = ((1.0 + (2.0 * max(0, (sqrt(((self.mueff - 1.0) / (self.dim + 1.0))) - 1.0)))) + self.cs)
    self.damps = params.get('damps', self.damps)
