def _eig_sym(self):
<EOL>tmpp = np.sqrt(self.Pi)<EOL>symQ = self.W*np.outer(tmpp, tmpp)<EOL>eigvals, eigvecs = np.linalg.eigh(symQ)<EOL>tmp_v = eigvecs.T*tmpp<EOL>one_norm = np.sum(np.abs(tmp_v), axis=<NUM_LIT:1>)<EOL>self.v = tmp_v.T/one_norm<EOL>self.v_inv = (eigvecs*one_norm).T/tmpp<EOL>self.eigenvals = eigvals<EOL>
Perform eigendecompositon of the rate matrix and stores the left- and right-
matrices to convert the sequence profiles to the GTR matrix eigenspace
and hence to speed-up the computations.