No, that’s not a bug. ishermitian
tests for hermiticity in the value not the type sense. No matter the type of a matrix, if it is hermitian ishermitian
will / should return true
. So, the function behaves correctly.
The fact that you need to use Hermitian(matrix)
in the eigen
function is because that’s a requirement from GenericLinearAlgebra
. Among other things, it only adds a method eigen(A::Hermitian{<:Real})
. Perhaps one could think about relaxing the function signature / dispatch constraint and, based on ishermitian
/ issymmetric
, add a generic method that does the Hermitian(matrix)
/ Symmetric(matrix)
type transformation automatically (i.e. for the user). Note that this is what LinearAlgebra
does at some points, for example here. However, it is very natural in Julia to indiciate special properties of your matrices on the type level to dispatch to specific implementations.
In any case, not a bug.