.TH "SRC/slaed7.f" 3 "Version 3.12.0" "LAPACK" \" -*- nroff -*- .ad l .nh .SH NAME SRC/slaed7.f .SH SYNOPSIS .br .PP .SS "Functions/Subroutines" .in +1c .ti -1c .RI "subroutine \fBslaed7\fP (icompq, n, qsiz, tlvls, curlvl, curpbm, d, q, ldq, indxq, rho, cutpnt, qstore, qptr, prmptr, perm, givptr, givcol, givnum, work, iwork, info)" .br .RI "\fBSLAED7\fP used by SSTEDC\&. Computes the updated eigensystem of a diagonal matrix after modification by a rank-one symmetric matrix\&. Used when the original matrix is dense\&. " .in -1c .SH "Function/Subroutine Documentation" .PP .SS "subroutine slaed7 (integer icompq, integer n, integer qsiz, integer tlvls, integer curlvl, integer curpbm, real, dimension( * ) d, real, dimension( ldq, * ) q, integer ldq, integer, dimension( * ) indxq, real rho, integer cutpnt, real, dimension( * ) qstore, integer, dimension( * ) qptr, integer, dimension( * ) prmptr, integer, dimension( * ) perm, integer, dimension( * ) givptr, integer, dimension( 2, * ) givcol, real, dimension( 2, * ) givnum, real, dimension( * ) work, integer, dimension( * ) iwork, integer info)" .PP \fBSLAED7\fP used by SSTEDC\&. Computes the updated eigensystem of a diagonal matrix after modification by a rank-one symmetric matrix\&. Used when the original matrix is dense\&. .PP \fBPurpose:\fP .RS 4 .PP .nf !> !> SLAED7 computes the updated eigensystem of a diagonal !> matrix after modification by a rank-one symmetric matrix\&. This !> routine is used only for the eigenproblem which requires all !> eigenvalues and optionally eigenvectors of a dense symmetric matrix !> that has been reduced to tridiagonal form\&. SLAED1 handles !> the case in which all eigenvalues and eigenvectors of a symmetric !> tridiagonal matrix are desired\&. !> !> T = Q(in) ( D(in) + RHO * Z*Z**T ) Q**T(in) = Q(out) * D(out) * Q**T(out) !> !> where Z = Q**Tu, u is a vector of length N with ones in the !> CUTPNT and CUTPNT + 1 th elements and zeros elsewhere\&. !> !> The eigenvectors of the original matrix are stored in Q, and the !> eigenvalues are in D\&. The algorithm consists of three stages: !> !> The first stage consists of deflating the size of the problem !> when there are multiple eigenvalues or if there is a zero in !> the Z vector\&. For each such occurrence the dimension of the !> secular equation problem is reduced by one\&. This stage is !> performed by the routine SLAED8\&. !> !> The second stage consists of calculating the updated !> eigenvalues\&. This is done by finding the roots of the secular !> equation via the routine SLAED4 (as called by SLAED9)\&. !> This routine also calculates the eigenvectors of the current !> problem\&. !> !> The final stage consists of computing the updated eigenvectors !> directly using the updated eigenvalues\&. The eigenvectors for !> the current problem are multiplied with the eigenvectors from !> the overall problem\&. !> .fi .PP .RE .PP \fBParameters\fP .RS 4 \fIICOMPQ\fP .PP .nf !> ICOMPQ is INTEGER !> = 0: Compute eigenvalues only\&. !> = 1: Compute eigenvectors of original dense symmetric matrix !> also\&. On entry, Q contains the orthogonal matrix used !> to reduce the original matrix to tridiagonal form\&. !> .fi .PP .br \fIN\fP .PP .nf !> N is INTEGER !> The dimension of the symmetric tridiagonal matrix\&. N >= 0\&. !> .fi .PP .br \fIQSIZ\fP .PP .nf !> QSIZ is INTEGER !> The dimension of the orthogonal matrix used to reduce !> the full matrix to tridiagonal form\&. QSIZ >= N if ICOMPQ = 1\&. !> .fi .PP .br \fITLVLS\fP .PP .nf !> TLVLS is INTEGER !> The total number of merging levels in the overall divide and !> conquer tree\&. !> .fi .PP .br \fICURLVL\fP .PP .nf !> CURLVL is INTEGER !> The current level in the overall merge routine, !> 0 <= CURLVL <= TLVLS\&. !> .fi .PP .br \fICURPBM\fP .PP .nf !> CURPBM is INTEGER !> The current problem in the current level in the overall !> merge routine (counting from upper left to lower right)\&. !> .fi .PP .br \fID\fP .PP .nf !> D is REAL array, dimension (N) !> On entry, the eigenvalues of the rank-1-perturbed matrix\&. !> On exit, the eigenvalues of the repaired matrix\&. !> .fi .PP .br \fIQ\fP .PP .nf !> Q is REAL array, dimension (LDQ, N) !> On entry, the eigenvectors of the rank-1-perturbed matrix\&. !> On exit, the eigenvectors of the repaired tridiagonal matrix\&. !> .fi .PP .br \fILDQ\fP .PP .nf !> LDQ is INTEGER !> The leading dimension of the array Q\&. LDQ >= max(1,N)\&. !> .fi .PP .br \fIINDXQ\fP .PP .nf !> INDXQ is INTEGER array, dimension (N) !> The permutation which will reintegrate the subproblem just !> solved back into sorted order, i\&.e\&., D( INDXQ( I = 1, N ) ) !> will be in ascending order\&. !> .fi .PP .br \fIRHO\fP .PP .nf !> RHO is REAL !> The subdiagonal element used to create the rank-1 !> modification\&. !> .fi .PP .br \fICUTPNT\fP .PP .nf !> CUTPNT is INTEGER !> Contains the location of the last eigenvalue in the leading !> sub-matrix\&. min(1,N) <= CUTPNT <= N\&. !> .fi .PP .br \fIQSTORE\fP .PP .nf !> QSTORE is REAL array, dimension (N**2+1) !> Stores eigenvectors of submatrices encountered during !> divide and conquer, packed together\&. QPTR points to !> beginning of the submatrices\&. !> .fi .PP .br \fIQPTR\fP .PP .nf !> QPTR is INTEGER array, dimension (N+2) !> List of indices pointing to beginning of submatrices stored !> in QSTORE\&. The submatrices are numbered starting at the !> bottom left of the divide and conquer tree, from left to !> right and bottom to top\&. !> .fi .PP .br \fIPRMPTR\fP .PP .nf !> PRMPTR is INTEGER array, dimension (N lg N) !> Contains a list of pointers which indicate where in PERM a !> level's permutation is stored\&. PRMPTR(i+1) - PRMPTR(i) !> indicates the size of the permutation and also the size of !> the full, non-deflated problem\&. !> .fi .PP .br \fIPERM\fP .PP .nf !> PERM is INTEGER array, dimension (N lg N) !> Contains the permutations (from deflation and sorting) to be !> applied to each eigenblock\&. !> .fi .PP .br \fIGIVPTR\fP .PP .nf !> GIVPTR is INTEGER array, dimension (N lg N) !> Contains a list of pointers which indicate where in GIVCOL a !> level's Givens rotations are stored\&. GIVPTR(i+1) - GIVPTR(i) !> indicates the number of Givens rotations\&. !> .fi .PP .br \fIGIVCOL\fP .PP .nf !> GIVCOL is INTEGER array, dimension (2, N lg N) !> Each pair of numbers indicates a pair of columns to take place !> in a Givens rotation\&. !> .fi .PP .br \fIGIVNUM\fP .PP .nf !> GIVNUM is REAL array, dimension (2, N lg N) !> Each number indicates the S value to be used in the !> corresponding Givens rotation\&. !> .fi .PP .br \fIWORK\fP .PP .nf !> WORK is REAL array, dimension (3*N+2*QSIZ*N) !> .fi .PP .br \fIIWORK\fP .PP .nf !> IWORK is INTEGER array, dimension (4*N) !> .fi .PP .br \fIINFO\fP .PP .nf !> INFO is INTEGER !> = 0: successful exit\&. !> < 0: if INFO = -i, the i-th argument had an illegal value\&. !> > 0: if INFO = 1, an eigenvalue did not converge !> .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 Jeff Rutter, Computer Science Division, University of California at Berkeley, USA .RE .PP .PP Definition at line \fB256\fP of file \fBslaed7\&.f\fP\&. .SH "Author" .PP Generated automatically by Doxygen for LAPACK from the source code\&.