StridedMatrix? Hermitian and SymTridiagonal for LinAlg



Julia V0.6.2

Is this a bug? Am I using these type wrappers properly?

julia> A = Hermitian(SymTridiagonal([1, 2, 3], [1im, 2im]));

julia> eigfact(A)
ERROR: MethodError: no method matching eigfact!(::Hermitian{Complex{Float64},Sym

The fact is that SymTridiagonal is not an StridedMatrix, and hence there is no method for such case. The same would happen with many more types such as Diagonal, …

Maybe complex hermitian tridiagonal type should be considered and add a method for them. Or don’t allow for SymTridiagonal as a container for the data of the Hermitian type.


Is this a bug? Am I using these type wrappers properly?

This is not really a problem with the Hermitian wrapper, there are no specialized eig* version for complex SymTridiagonal, at least not that is wrapped by julia.


There is a diagonal similarity transformation which reduces a Hermitian tridiagonal to a real symmetric tridiagonal. IINM this constructs it:

function simx(A)

Perhaps this could be used to build the requested methods.