Julia defines not only a Tridiagonal type but also a SymTridiagonal type.
Why is this type needed compared to Symmetric(Tridiagonal)
, that could still allow function specialization?
Possibly memory savings? Symmetric{<:Any, <:Tridiagonal}
stores a Tridiagonal
, which stores both the first superdiagonal and the first subdiagonal, while SymTridiagonal
only stores one of those. I think very large SymTridiagonal
s are often used, so memory limitations could be a concern.
3 Likes