SUBROUTINE ZLAIC1( JOB, J, X, SEST, W, GAMMA, SESTPR, S, C ) INTEGER J, JOB DOUBLE PRECISION SEST, SESTPR COMPLEX*16 C, GAMMA, S COMPLEX*16 W( J ), X( J )
ZLAIC1 applies one step of incremental condition estimation in its simplest version: Let x, twonorm(x) = 1, be an approximate singular vector of an j-by-j lower triangular matrix L, such that twonorm(L*x) = sest Then ZLAIC1 computes sestpr, s, c such that the vector [ s*x ] xhat = [ c ] is an approximate singular vector of [ L 0 ] Lhat = [ w' gamma ] in the sense that twonorm(Lhat*xhat) = sestpr. Depending on JOB, an estimate for the largest or smallest singular value is computed. Note that [s c]' and sestpr**2 is an eigenpair of the system diag(sest*sest, 0) + [alpha gamma] * [ conjg(alpha) ] [ conjg(gamma) ] where alpha = conjg(x)'*w.
JOB (input) INTEGER = 1: an estimate for the largest singular value is computed. = 2: an estimate for the smallest singular value is computed. J (input) INTEGER Length of X and W X (input) COMPLEX*16 array, dimension (J) The j-vector x. SEST (input) DOUBLE PRECISION Estimated singular value of j by j matrix L W (input) COMPLEX*16 array, dimension (J) The j-vector w. GAMMA (input) COMPLEX*16 The diagonal element gamma. SEDTPR (output) DOUBLE PRECISION Estimated singular value of (j+1) by (j+1) matrix Lhat. S (output) COMPLEX*16 Sine needed in forming xhat. C (output) COMPLEX*16 Cosine needed in forming xhat.