Thanks for the clarification. Just to clarify, I was proposing that all operations that need a Hermitian matrix restrict the argument to types which signal this, and if the user want to use some other type, he should take care of the conversion manually (eg Hermitian(A, :U)
).
I am proposing this because, as opposed to interval restrictions on Float64
, a matrix being Hermitian is
- more costly to check,
- nearly guaranteed to fail in floating point even for operations which ostensibly preserve it (in theory).