You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
i've had a crack at this bug. I'm not sure but it looks like it's caused by underflow/rounding errors in dlanv2.
The following happens during the iterations:
If the shift is purely imaginary, the structure will be preserved
because we compare with the diagonal elements, we would need H(3,2) to be under sfmin to get a deflation
after 10 iterations, we use the ad hoc shift (which is not purely imaginary) and get a deflation
We end up with the following subblock for the first 2 eigenvalues:
0.0000E+00 4.9329E-01
-4.9329E-01 -9.8813-324
DLANV2 turns this into:
0.0000E+00 7.3993E-01
-7.3993E-01 0.0000E+00
The cause is a rounding error in line 218 of DLANV2, CS is sqrt(0.5), so SN should also be sqrt(0.5), but instead it becomes -1. Not even a valid rotation, let alone one that correctly normalizes the 2x2 block.
This program
produces
on my machine with LAPACK 3.8.
I don't think there should be a conditioning issue here. I guess the convergence criterion might be confused by the zero diagonal.
The text was updated successfully, but these errors were encountered: