def _update_dPrxy(self):
super(ExpCM_fitprefs, self)._update_dPrxy()<EOL>if '<STR_LIT>' in self.freeparams:<EOL><INDENT>tildeFrxyQxy = self.tildeFrxy * self.Qxy<EOL>j = <NUM_LIT:0><EOL>zetaxterm = scipy.ndarray((self.nsites, N_CODON, N_CODON), dtype='<STR_LIT:float>')<EOL>zetayterm = scipy.ndarray((self.nsites, N_CODON, N_CODON), dtype='<STR_LIT:float>')<EOL>for r in range(self.nsites):<EOL><INDENT>for i in range(N_AA - <NUM_LIT:1>):<EOL><INDENT>zetari = self.zeta[j]<EOL>zetaxterm.fill(<NUM_LIT:0>)<EOL>zetayterm.fill(<NUM_LIT:0>)<EOL>zetaxterm[r][self._aa_for_x > i] = -<NUM_LIT:1.0> / zetari<EOL>zetaxterm[r][self._aa_for_x == i] = -<NUM_LIT:1.0> / (zetari - <NUM_LIT:1.0>)<EOL>zetayterm[r][self._aa_for_y > i] = <NUM_LIT:1.0> / zetari<EOL>zetayterm[r][self._aa_for_y == i] = <NUM_LIT:1.0> / (zetari - <NUM_LIT:1.0>)<EOL>self.dPrxy['<STR_LIT>'][j] = tildeFrxyQxy * (zetayterm + zetaxterm)<EOL>_fill_diagonals(self.dPrxy['<STR_LIT>'][j], self._diag_indices)<EOL>j += <NUM_LIT:1><EOL><DEDENT><DEDENT><DEDENT>
Update `dPrxy`.