I've encountered an odd issue with solving for the eigenvalues of the following matrix, in Matlab format:
[ 0 1 0 1 0 0 0 0 0 0 0 0 1 1;
1 0 0 0 0 0 0 0 0 0 0 0 0 0;
0 1 0 1 0 0 0 0 0 0 0 0 0 0;
0 0 1 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 1 0 0 0 0 0 0 0 0;
0 0 0 0 1 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 1 0 0 0 0 0 0;
0 0 0 0 0 0 1 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0 1 0 0 0 0;
0 0 0 0 0 0 0 0 1 0 0 1 0 0;
0 0 0 0 0 0 0 0 1 0 0 1 0 0;
0 0 0 0 0 0 0 0 0 0 1 0 0 0;
0 1 0 0 0 0 0 0 0 0 0 0 1 1;
0 1 0 0 0 0 0 0 0 0 0 0 1 1 ]
When stored as a matrix of doubles, calling dgeev on this matrix correctly finds the eigenvalues.
However, when stored as a matrix of complex doubles (with all the imaginary components set to $0$), calling zgeev on it returns an error value of $13$, indicating that the QR algorithm failed to converge.
Strangely, multiplying this matrix by $i$ (so that the real components are $0$ instead) results in the correct eigenvalues being found again.
What is causing the QR algorithm not to converge in the first complex case, and is there a way to get around it?