code: def tauV(T):
      
      t,V,tr=[],[],0.
      ind1,ind2,ind3=0,1,2
      evalues,evectmps=numpy.linalg.eig(T)
      evectors=numpy.transpose(evectmps)  # to make compatible with Numeric convention
      for tau in evalues:
          tr += tau  # tr totals tau values
      if tr != 0:
          for i in range(3):
              evalues[i]=old_div(evalues[i], tr)  # convention is norming eigenvalues so they sum to 1.
      else:
          return t,V  # if eigenvalues add up to zero, no sorting is needed
  # sort evalues,evectors      
      t1, t2, t3 = 0., 0., 1.
      for k in range(3):  
          if evalues[k] > t1:
              t1,ind1 = evalues[k],k
          if evalues[k] < t3:
              t3,ind3 = evalues[k],k
      for k in range(3):
          if evalues[k] != t1 and evalues[k] != t3:
              t2,ind2=evalues[k],k
      V.append(evectors[ind1])
      V.append(evectors[ind2])
      V.append(evectors[ind3])
      t.append(t1)
      t.append(t2)
      t.append(t3)
      return t,V
docs: gets the eigenvalues (tau) and eigenvectors (V) from matrix T