if matrix.cols != matrix.rows or matrix.cols == 0:
return evaluation.message("Eigenvalues", "matsq", m)
eigenvalues = [(from_sympy(v), w)
for (v, w) in matrix.eigenvals().items()]
eigenvalues.sort(key=lambda v_c: v_c[0].get_sort_key(), reverse=True)
eigenvalues = [val for (v, w) in eigenvalues for val in [v] * w]