def parameters_changed(self):
<EOL>(F,L,Qc,H,P_inf, P0, dFt,dQct,dP_inft, dP0t) = self.kern.sde()<EOL>measurement_dim = self.output_dim<EOL>grad_params_no = dFt.shape[<NUM_LIT:2>]+<NUM_LIT:1> <EOL>dF    = np.zeros([dFt.shape[<NUM_LIT:0>],dFt.shape[<NUM_LIT:1>],grad_params_no])<EOL>dQc   = np.zeros([dQct.shape[<NUM_LIT:0>],dQct.shape[<NUM_LIT:1>],grad_params_no])<EOL>dP_inf = np.zeros([dP_inft.shape[<NUM_LIT:0>],dP_inft.shape[<NUM_LIT:1>],grad_params_no])<EOL>dP0 = np.zeros([dP0t.shape[<NUM_LIT:0>],dP0t.shape[<NUM_LIT:1>],grad_params_no])<EOL>dF[:,:,:-<NUM_LIT:1>] = dFt<EOL>dQc[:,:,:-<NUM_LIT:1>] = dQct<EOL>dP_inf[:,:,:-<NUM_LIT:1>] = dP_inft<EOL>dP0[:,:,:-<NUM_LIT:1>] = dP0t<EOL>dR = np.zeros([measurement_dim,measurement_dim,grad_params_no])<EOL>dR[:,:,-<NUM_LIT:1>] = np.eye(measurement_dim)<EOL>if self.balance:<EOL><INDENT>(F,L,Qc,H,P_inf,P0, dF,dQc,dP_inf,dP0) = ssm.balance_ss_model(F,L,Qc,H,P_inf,P0, dF,dQc,dP_inf, dP0)<EOL>print("<STR_LIT>")<EOL><DEDENT>grad_calc_params = {}<EOL>grad_calc_params['<STR_LIT>'] = dP_inf<EOL>grad_calc_params['<STR_LIT>'] = dF<EOL>grad_calc_params['<STR_LIT>'] = dQc<EOL>grad_calc_params['<STR_LIT>'] = dR<EOL>grad_calc_params['<STR_LIT>'] = dP0<EOL>kalman_filter_type = self.kalman_filter_type<EOL>Y = self.Y<EOL>if self.ts_number is None:<EOL><INDENT>Y.shape = (self.num_data,<NUM_LIT:1>)<EOL><DEDENT>else:<EOL><INDENT>Y.shape = (self.num_data,<NUM_LIT:1>,self.ts_number)<EOL><DEDENT>(filter_means, filter_covs, log_likelihood,<EOL>grad_log_likelihood,SmootherMatrObject) = ssm.ContDescrStateSpace.cont_discr_kalman_filter(F,L,Qc,H,<EOL>float(self.Gaussian_noise.variance),P_inf,self.X,Y,m_init=None,<EOL>P_init=P0, p_kalman_filter_type = kalman_filter_type, calc_log_likelihood=True,<EOL>calc_grad_log_likelihood=True,<EOL>grad_params_no=grad_params_no,<EOL>grad_calc_params=grad_calc_params)<EOL>if np.any( np.isfinite(log_likelihood) == False):<EOL><INDENT>print("<STR_LIT>")<EOL><DEDENT>if np.any( np.isfinite(grad_log_likelihood) == False):<EOL><INDENT>print("<STR_LIT>")<EOL><DEDENT>grad_log_likelihood_sum = np.sum(grad_log_likelihood,axis=<NUM_LIT:1>)<EOL>grad_log_likelihood_sum.shape = (grad_log_likelihood_sum.shape[<NUM_LIT:0>],<NUM_LIT:1>)<EOL>self._log_marginal_likelihood = np.sum( log_likelihood,axis=<NUM_LIT:1> )<EOL>self.likelihood.update_gradients(grad_log_likelihood_sum[-<NUM_LIT:1>,<NUM_LIT:0>])<EOL>self.kern.sde_update_gradient_full(grad_log_likelihood_sum[:-<NUM_LIT:1>,<NUM_LIT:0>])<EOL>
Parameters have now changed