Hi all,

I am using the subroutine DLAED4 in solving for the spectrum of D + r*r', where D is diagonal. I have encountered issues with this routine when one component of r is zero, say the ith component. In this case, we know that the ith diagonal element of D, d_{i}, is left unchanged by the rank one modification, and so d_{i} is in the spectrum of D + r*r'. I am observing in all examples I've tested with a component of r equal to zero, DLAED4 doesn't converge, i.e. doesn't return the corresponding diagonal element of D. This is fine in practice since if I know the components in which r is zero, then I already know those particular eigenvalues of D + r*r', so I've thought that I could DLAED4 to just solve for the eigenvalues corresponding to nonzero components of r. But with D = diag([-6;-5;1]) and r = [2;0;-1], it appears that DLAED4 doesn't converge for two of the eigenvalues, although only one of the components of r is zero.

I dug into the algorithm behind DLAED4 a bit, but not enough yet to explain to myself this behaviour. My confusion, along with reading some literature from Dr. Ren-Cang Li, has motivated me to ask you all if in fact I need to assume that all the components of the updating vector r are nonzero. In the documentation of DLAED4 I've found, this requirement on r is not explicitly stated.

Thank you for any help!

Best, Charles