docs: def filtered_to_forecast(self):
          """
          Updates the moments of the time t filtering distribution to the
          moments of the predictive distribution, which becomes the time
          t+1 prior
  
          """
          # === simplify notation === #
          A, C = self.ss.A, self.ss.C
          Q = np.dot(C, C.T)
  
          # === and then update === #
          self.x_hat = dot(A, self.x_hat)
          self.Sigma = dot(A, dot(self.Sigma, A.T)) + Q