def _update_mean_params(self):
        """
        Returns
        -------
        update : array-like
            The update vector such that params + update is the next
            iterate when solving the score equations.
        score : array-like
            The current value of the score equations, not
            incorporating the scale parameter.  If desired,
            multiply this vector by the scale parameter to
            incorporate the scale.
        """

        endog = self.endog_li
        exog = self.exog_li

        cached_means = self.cached_means

        varfunc = self.family.variance

        bmat, score = 0, 0
        for i in range(self.num_group):

            expval, lpr = cached_means[i]
            resid = expval - endog[i]
            dmat = self.mean_deriv(exog[i], lpr)
            sdev = np.sqrt(varfunc(expval))

            rslt = self.cov_struct.covariance_matrix_solve(expval, i,
                                                sdev, (dmat, resid))
            if rslt is None:
                return None, None
            vinv_d, vinv_resid = tuple(rslt)

            f = self.weights_li[i] if self.weights is not None else 1.

            bmat += f * np.dot(dmat.T, vinv_d)
            score += f * np.dot(dmat.T, vinv_resid)

        update = np.linalg.solve(bmat, score)

        self._fit_history["cov_adjust"].append(
            self.cov_struct.cov_adjust)

        return update, score
dataset/ETHPy150Open statsmodels/statsmodels/statsmodels/genmod/generalized_estimating_equations.py/GEE._update_mean_params/swapped operands of `-`