def _dK_ode_dtheta(self, target):
t_ode = self._t[self._index><NUM_LIT:0>]<EOL>dL_dK_ode = self._dL_dK[self._index><NUM_LIT:0>, :]<EOL>index_ode = self._index[self._index><NUM_LIT:0>]-<NUM_LIT:1><EOL>if self._t2 is None:<EOL><INDENT>if t_ode.size==<NUM_LIT:0>:<EOL><INDENT>return        <EOL><DEDENT>t2_ode = t_ode<EOL>dL_dK_ode = dL_dK_ode[:, self._index><NUM_LIT:0>]<EOL>index2_ode = index_ode<EOL><DEDENT>else:<EOL><INDENT>t2_ode = self._t2[self._index2><NUM_LIT:0>]<EOL>dL_dK_ode = dL_dK_ode[:, self._index2><NUM_LIT:0>]<EOL>if t_ode.size==<NUM_LIT:0> or t2_ode.size==<NUM_LIT:0>:<EOL><INDENT>return<EOL><DEDENT>index2_ode = self._index2[self._index2><NUM_LIT:0>]-<NUM_LIT:1><EOL><DEDENT>h1 = self._compute_H(t_ode, index_ode, t2_ode, index2_ode, stationary=self.is_stationary, update_derivatives=True)<EOL>self._dK_dsigma = self._dh_dsigma<EOL>if self._t2 is None:<EOL><INDENT>h2 = h1<EOL><DEDENT>else:<EOL><INDENT>h2 = self._compute_H(t2_ode, index2_ode, t_ode, index_ode, stationary=self.is_stationary, update_derivatives=True)<EOL><DEDENT>self._dK_dsigma += self._dh_dsigma.T<EOL>(dL_dK_ode[:, :, None]*self._dh_ddelay[:, None, :]).sum(<NUM_LIT:2>)<EOL>target[-<NUM_LIT:1>] += (dL_dK_ode*self._dK_dsigma/np.sqrt(<NUM_LIT:2>)).sum()<EOL>
Do all the computations for the ode parts of the covariance function.