# ConjugateTranspose[#] vs Conjugate[Transpose[#]] for lists [duplicate]

Bug introduced in 12.3 or earlier, fixed in 13.0.

I'm getting contradictory behavior for eigenvectors of a matrix when using Conjugate, Transpose and ConjugateTranspose. I'll demonstrate using an example.

newmat = {{1, 2, 3 - I}, {4, 5 + 3 I, 6}, {7 - 2 I, 8, 9}}
{nval, nvec} = Eigensystem[newmat] // N // Chop;

Transpose[nvec[[1]]] == nvec[[1]] (* True *)
ConjugateTranspose[nvec[[1]]] == Conjugate[nvec[[1]]] (* False *)
ConjugateTranspose[nvec[[1]]] == Conjugate[Transpose[nvec[[1]]]] (* False *)
ConjugateTranspose[nvec[[1]]] == Transpose[Conjugate[nvec[[1]]]] (* False *)
Conjugate[Transpose[nvec[[1]]]] == Transpose[Conjugate[nvec[[1]]]] (* True *)
Transpose[Conjugate[nvec[[1]]]] == Conjugate[nvec[[1]]] (* True *)


I'm struggling to understand this behavior. I understand that transpose of the eigenvector is the same as the eigenvector because it is a list with no secondary dimension. However, if so, then shouldn't Conjugate of the vector be the same as it's ConjugateTranspose?

However, if I convert the array/list to a column vector i.e. (n,1) matrix then I get the expected properties.

nvec[[1]] = ArrayReshape[nvec[[1]], {Length[nvec[[1]]], 1}];

Transpose[nvec[[1]]] == nvec[[1]] (* False *)
ConjugateTranspose[nvec[[1]]] == Conjugate[nvec[[1]]] (* False *)
ConjugateTranspose[nvec[[1]]] == Conjugate[Transpose[nvec[[1]]]] (* True *)
ConjugateTranspose[nvec[[1]]] == Transpose[Conjugate[nvec[[1]]]] (* True *)
Conjugate[Transpose[nvec[[1]]]] == Transpose[Conjugate[nvec[[1]]]] (* True *)
Transpose[Conjugate[nvec[[1]]]] == Conjugate[nvec[[1]]] (* False *)


Kindly help me understand how these functions work in Mathematica. If it's relevant, I come from a physics background (maybe I'm making assumptions that are common for us while not so much for the code). Thanks!

• Please read the manual for Eigensystem, in particular the part under "Details and Options". May 15, 2023 at 9:38
• Hm. This might also be version dependent. I recall that some time ago it caused an error to call Transpose on a vector. With Mathematica 13.2, all the results of your first code block are True. May 15, 2023 at 9:42
• @HenrikSchumacher yes, you're correct - the issue was with my version (12.3.1) which is from July 2021, this is crazy! May 15, 2023 at 9:56
• @HenrikSchumacher can you please write your comment as an answer and I can accept it? May 15, 2023 at 9:56

Hm. This might also be version dependent. I recall that some time ago it caused an error to call Transpose on a vector. With Mathematica 13.2, all the results of your first code block are True.
• "I recall that some time ago it caused an error to call Transpose on a vector. " I guess you mean the issue discussed here?: mathematica.stackexchange.com/q/244659/1871 <strike>I doubt if this is related… </strike> OK, they might have forgotten to tackle ConjugateTranspose after changing the behavior of Transpose. May 16, 2023 at 14:15