1) Non convergence in the QZ algorithm in spec(A,E) 2) The message is only "W
Reported by Fabrice Pardo
Originally assigned to Michael BAUDIN
-- Bug description --
1) Non convergence in the QZ algorithm in spec(A,E)
2) The message is only "Warning", and the result is random.
NOTES
a) The problem comes from schur(A,E).
b) The problem appears if A and E are complex with zero imaginary part.
A workaround is to add small imaginary part or to switch to real.
c) I suppose that the computation stops and returs results from
partially uninitialized matrix.
d) Same problem with scilab-5.0.2
e) Same problem even if dhgeqz.f is patched as described in
http://icl.cs.utk.edu/lapack-forum/archives/lapack/msg00276.html
-- Scilab error message --
Warning:
Non convergence in the QZ algorithm.
The top 3 x 3 blocks may not be in generalized Schur form.
-- How to reproduce the bug --
clear;
phi = 0; // no problem with phi = 1e-9
m = exp(complex(0,-phi));
p = exp(complex(0,phi));
A0 = -45.;
A1 = 23.;
Am = A1*m;
Ap = A1*p;
E0 = 4/6.;
E1 = 1/4.;
Em = E1*m;
Ep = E1*p;
A = [A0 Am Ap; Ap A0 Am; Am Ap A0];
E = [E0 Em Ep; Ep E0 Em; Em Ep E0];
dE = zeros(3,3);
dE(2,1) = 1e-14;
dE(1,2) = 1e-14;
spec(A,E+dE) // no problem with spec(real(A),real(E+dE))