'Computes the limit of :math:`\Sigma_t` as t goes to infinity by
solving the associated Riccati equation. Computation is via the
doubling algorithm (see the documentation in
`matrix_eqn.solve_discrete_riccati`).
Returns
Sigma_infinity : array_like or scalar(float)
The infinite limit of :math:`\Sigma_t`
K_infinity : array_like or scalar(float)
The stationary Kalman gain.'

def stationary_values(self):

    (A, C, G, H) = (self.ss.A, self.ss.C, self.ss.G, self.ss.H)
    (Q, R) = (np.dot(C, C.T), np.dot(H, H.T))
    Sigma_infinity = solve_discrete_riccati(A.T, G.T, Q, R)
    temp1 = dot(dot(A, Sigma_infinity), G.T)
    temp2 = inv((dot(G, dot(Sigma_infinity, G.T)) + R))
    K_infinity = dot(temp1, temp2)
    (self.Sigma_infinity, self.K_infinity) = (Sigma_infinity, K_infinity)
    return (Sigma_infinity, K_infinity)
