def _get_eigensystem(self): if not self._is_dirty: return (self._all_eigenvalues, self._all_left_eigenvectors, self._all_right_eigenvectors) n_timescales = self.n_timescales if n_timescales is None: n_timescales = self.n_states_ - 1 k = n_timescales + 1 self._all_eigenvalues = [] self._all_left_eigenvectors = [] self._all_right_eigenvectors = [] for transmat in self.all_transmats_: u, lv, rv = _solve_msm_eigensystem(transmat, k) self._all_eigenvalues.append(u) self._all_left_eigenvectors.append(lv) self._all_right_eigenvectors.append(rv) self._all_eigenvalues = np.array(self._all_eigenvalues) self._all_left_eigenvectors = np.array(self._all_left_eigenvectors) self._all_right_eigenvectors = np.array(self._all_right_eigenvectors) self._is_dirty = False return (self._all_eigenvalues, self._all_left_eigenvectors, self._all_right_eigenvectors)
def _get_eigensystem(self): if not self._is_dirty: return (self._eigenvalues, self._left_eigenvectors, self._right_eigenvectors) n_timescales = self.n_timescales if n_timescales is None: n_timescales = self.n_states_ - 1 k = n_timescales + 1 u, lv, rv = _solve_msm_eigensystem(self.transmat_, k) self._eigenvalues = u self._left_eigenvectors = lv self._right_eigenvectors = rv self._is_dirty = False return u, lv, rv