.TH "SRC/zlar1v.f" 3 "Version 3.12.0" "LAPACK" \" -*- nroff -*- .ad l .nh .SH NAME SRC/zlar1v.f .SH SYNOPSIS .br .PP .SS "Functions/Subroutines" .in +1c .ti -1c .RI "subroutine \fBzlar1v\fP (n, b1, bn, lambda, d, l, ld, lld, pivmin, gaptol, z, wantnc, negcnt, ztz, mingma, r, isuppz, nrminv, resid, rqcorr, work)" .br .RI "\fBZLAR1V\fP computes the (scaled) r-th column of the inverse of the submatrix in rows b1 through bn of the tridiagonal matrix LDLT - λI\&. " .in -1c .SH "Function/Subroutine Documentation" .PP .SS "subroutine zlar1v (integer n, integer b1, integer bn, double precision lambda, double precision, dimension( * ) d, double precision, dimension( * ) l, double precision, dimension( * ) ld, double precision, dimension( * ) lld, double precision pivmin, double precision gaptol, complex*16, dimension( * ) z, logical wantnc, integer negcnt, double precision ztz, double precision mingma, integer r, integer, dimension( * ) isuppz, double precision nrminv, double precision resid, double precision rqcorr, double precision, dimension( * ) work)" .PP \fBZLAR1V\fP computes the (scaled) r-th column of the inverse of the submatrix in rows b1 through bn of the tridiagonal matrix LDLT - λI\&. .PP \fBPurpose:\fP .RS 4 .PP .nf !> !> ZLAR1V computes the (scaled) r-th column of the inverse of !> the sumbmatrix in rows B1 through BN of the tridiagonal matrix !> L D L**T - sigma I\&. When sigma is close to an eigenvalue, the !> computed vector is an accurate eigenvector\&. Usually, r corresponds !> to the index where the eigenvector is largest in magnitude\&. !> The following steps accomplish this computation : !> (a) Stationary qd transform, L D L**T - sigma I = L(+) D(+) L(+)**T, !> (b) Progressive qd transform, L D L**T - sigma I = U(-) D(-) U(-)**T, !> (c) Computation of the diagonal elements of the inverse of !> L D L**T - sigma I by combining the above transforms, and choosing !> r as the index where the diagonal of the inverse is (one of the) !> largest in magnitude\&. !> (d) Computation of the (scaled) r-th column of the inverse using the !> twisted factorization obtained by combining the top part of the !> the stationary and the bottom part of the progressive transform\&. !> .fi .PP .RE .PP \fBParameters\fP .RS 4 \fIN\fP .PP .nf !> N is INTEGER !> The order of the matrix L D L**T\&. !> .fi .PP .br \fIB1\fP .PP .nf !> B1 is INTEGER !> First index of the submatrix of L D L**T\&. !> .fi .PP .br \fIBN\fP .PP .nf !> BN is INTEGER !> Last index of the submatrix of L D L**T\&. !> .fi .PP .br \fILAMBDA\fP .PP .nf !> LAMBDA is DOUBLE PRECISION !> The shift\&. In order to compute an accurate eigenvector, !> LAMBDA should be a good approximation to an eigenvalue !> of L D L**T\&. !> .fi .PP .br \fIL\fP .PP .nf !> L is DOUBLE PRECISION array, dimension (N-1) !> The (n-1) subdiagonal elements of the unit bidiagonal matrix !> L, in elements 1 to N-1\&. !> .fi .PP .br \fID\fP .PP .nf !> D is DOUBLE PRECISION array, dimension (N) !> The n diagonal elements of the diagonal matrix D\&. !> .fi .PP .br \fILD\fP .PP .nf !> LD is DOUBLE PRECISION array, dimension (N-1) !> The n-1 elements L(i)*D(i)\&. !> .fi .PP .br \fILLD\fP .PP .nf !> LLD is DOUBLE PRECISION array, dimension (N-1) !> The n-1 elements L(i)*L(i)*D(i)\&. !> .fi .PP .br \fIPIVMIN\fP .PP .nf !> PIVMIN is DOUBLE PRECISION !> The minimum pivot in the Sturm sequence\&. !> .fi .PP .br \fIGAPTOL\fP .PP .nf !> GAPTOL is DOUBLE PRECISION !> Tolerance that indicates when eigenvector entries are negligible !> w\&.r\&.t\&. their contribution to the residual\&. !> .fi .PP .br \fIZ\fP .PP .nf !> Z is COMPLEX*16 array, dimension (N) !> On input, all entries of Z must be set to 0\&. !> On output, Z contains the (scaled) r-th column of the !> inverse\&. The scaling is such that Z(R) equals 1\&. !> .fi .PP .br \fIWANTNC\fP .PP .nf !> WANTNC is LOGICAL !> Specifies whether NEGCNT has to be computed\&. !> .fi .PP .br \fINEGCNT\fP .PP .nf !> NEGCNT is INTEGER !> If WANTNC is \&.TRUE\&. then NEGCNT = the number of pivots < pivmin !> in the matrix factorization L D L**T, and NEGCNT = -1 otherwise\&. !> .fi .PP .br \fIZTZ\fP .PP .nf !> ZTZ is DOUBLE PRECISION !> The square of the 2-norm of Z\&. !> .fi .PP .br \fIMINGMA\fP .PP .nf !> MINGMA is DOUBLE PRECISION !> The reciprocal of the largest (in magnitude) diagonal !> element of the inverse of L D L**T - sigma I\&. !> .fi .PP .br \fIR\fP .PP .nf !> R is INTEGER !> The twist index for the twisted factorization used to !> compute Z\&. !> On input, 0 <= R <= N\&. If R is input as 0, R is set to !> the index where (L D L**T - sigma I)^{-1} is largest !> in magnitude\&. If 1 <= R <= N, R is unchanged\&. !> On output, R contains the twist index used to compute Z\&. !> Ideally, R designates the position of the maximum entry in the !> eigenvector\&. !> .fi .PP .br \fIISUPPZ\fP .PP .nf !> ISUPPZ is INTEGER array, dimension (2) !> The support of the vector in Z, i\&.e\&., the vector Z is !> nonzero only in elements ISUPPZ(1) through ISUPPZ( 2 )\&. !> .fi .PP .br \fINRMINV\fP .PP .nf !> NRMINV is DOUBLE PRECISION !> NRMINV = 1/SQRT( ZTZ ) !> .fi .PP .br \fIRESID\fP .PP .nf !> RESID is DOUBLE PRECISION !> The residual of the FP vector\&. !> RESID = ABS( MINGMA )/SQRT( ZTZ ) !> .fi .PP .br \fIRQCORR\fP .PP .nf !> RQCORR is DOUBLE PRECISION !> The Rayleigh Quotient correction to LAMBDA\&. !> RQCORR = MINGMA*TMP !> .fi .PP .br \fIWORK\fP .PP .nf !> WORK is DOUBLE PRECISION array, dimension (4*N) !> .fi .PP .RE .PP \fBAuthor\fP .RS 4 Univ\&. of Tennessee .PP Univ\&. of California Berkeley .PP Univ\&. of Colorado Denver .PP NAG Ltd\&. .RE .PP \fBContributors:\fP .RS 4 Beresford Parlett, University of California, Berkeley, USA .br Jim Demmel, University of California, Berkeley, USA .br Inderjit Dhillon, University of Texas, Austin, USA .br Osni Marques, LBNL/NERSC, USA .br Christof Voemel, University of California, Berkeley, USA .RE .PP .PP Definition at line \fB227\fP of file \fBzlar1v\&.f\fP\&. .SH "Author" .PP Generated automatically by Doxygen for LAPACK from the source code\&.