'Maximize the variational lower bound
Update each of the parameters to maximize the lower bound.'

def _do_mstep(self, X, z, params):

    self._monitor(X, z, 'z')
    self._update_concentration(z)
    self._monitor(X, z, 'gamma')
    if ('m' in params):
        self._update_means(X, z)
    self._monitor(X, z, 'mu')
    if ('c' in params):
        self._update_precisions(X, z)
    self._monitor(X, z, 'a    and    b', end=True)
