Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
if covariances:
result.smoothed.states.cov[:,j,:,:] = Ps
if observations:
obs_mean, obs_cov = self.predict_observation(ms, Ps)
result.smoothed.observations.mean[:,j,:] = obs_mean[...,0]
if covariances:
result.smoothed.observations.cov[:,j,:,:] = obs_cov
if gains:
result.smoothed.gains[:,j,:,:] = Cs
result.pairwise_covariances[:,j,:,:] = ddot_t_right(PsNext, Cs)
if filtered:
if states:
result.filtered.states = Gaussian(filtered_states.mean, None)
if covariances:
result.filtered.states.cov = filtered_states.cov
result.filtered.states = auto_flat_states(result.filtered.states)
if observations:
result.filtered.observations = auto_flat_observations(
filtered_observations)
if smoothed:
if observations:
result.smoothed.observations = auto_flat_observations(
result.smoothed.observations)
if states:
result.smoothed.states = auto_flat_states(
result.smoothed.states)
if n_test > 0:
def unvectorize_state(self):
n_states = self.mean.shape[-1]
assert(n_states == 1)
mean = self.mean
cov = self.cov
mean = mean[...,0]
if cov is not None:
cov = cov[...,0,0]
return Gaussian(mean, cov)
def unvectorize_vars(self):
n_vars = self.mean.shape[0]
assert(n_vars == 1)
mean = self.mean
cov = self.cov
mean = mean[0,...]
if cov is not None:
cov = cov[0,...]
return Gaussian(mean, cov)
def empty(n_states, n_vars, n_measurements, cov=True):
mean = np.empty((n_vars, n_measurements, n_states))
if cov:
cov = np.empty((n_vars, n_measurements, n_states, n_states))
else:
cov = None
return Gaussian(mean, cov)