Page 1 of 1

Assumptions in DLAED4

PostPosted: Wed Jun 06, 2012 3:44 pm
by cpuelz
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

Re: Assumptions in DLAED4

PostPosted: Tue Jun 12, 2012 11:47 am
by cpuelz
In a private email correspondence, one of the contributors explained that since this routine was written primarily for the divide and conquer algorithm, deflation is implemented in divide and conquer prior to calling DLAED4. Thus, it is assumed that the vector used in the rank 1 modification contains no zero components, and this isn't stated in the routine's documentation.