I think it’s intentional, the docstring says the parameters permute and scale are relevant to “general nonsymmetric matrices”, but Hermitian matrices have symmetry. Note that you’d get the same MethodError with Float64 elements, try omitting the .|> big text.
Thanks for the reply! Actually, I can remove Hermitian but have to keep big because I’m trying to compute the eigenvalues of a nearly symmetric matrix with arbitrary precision. But it seems that even when using GenericLinearAlgebra, eigen does not support Matrix{BigFloat}:
julia> n = rand(3,3) .|> big;
julia> eigen(m);
ERROR: MethodError: no method matching eigen!(::Matrix{BigFloat}; permute::Bool, scale::Bool, sortby::typeof(LinearAlgebra.eigsortby))
That’s why I added |>Hermitian. But now it does not support permute again… Do you know if there’s a workaround to this? Thanks!
Correct, GenericLinearAlgebra is not a complete extension, which the documentation all but says. issue #57 is relevant to your use case. My earlier point was that the permute and scale keywords are not intended for any symmetric matrix types, and the point is separate from GenericLinearAlgebra extending eigen to Hermitian{BigFloat, Matrix{BigFloat}} (without the keywords of course) but not Matrix{BigFloat}.