What is the point of the Symmetric
type in the LinearAlgebra
package of Julia? It seems like it is equivalent to the type Hermitian
for real matrices (although: is this true?). If that is true, then the only case for which Symmetric
is not redundant with Hermitian
is for complex matrices, and it would be surprising to want to have a symmetric as opposed to Hermitian complex matrix (maybe I am mistaken on that though).
I ask this question in part because I sometimes find myself doing casework like this: if I have a real matrix, then use Symmetric
; if complex, then Hermitian
. It seems though that I could save work by just always using Hermitian
. Will I be missing out on performance or otherwise if I do this?
(Also, bonus question that may be related: why is there no HermTridiagonal
type in addition to SymTridiagonal
? I could use the former. Plus, it seems more useful than SymTridiagonal
in consideration of the above.)
To copy the answer from the linked discourse thread (via @stevengj):
Always use Hermitian. For real elements, there is no penalty compared to Symmetric.
There aren’t any specialized routines for complex Symmetric matrices that I know of. My feeling is that it was probably a mistake to have a separate Symmetric type in LinearAlgebra, but it is hard to remove at this point.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With