Developer Reference for Intel® oneAPI Math Kernel Library for Fortran
?laed8
Used by ?stedc . Merges eigenvalues and deflates secular equation. Used when the original matrix is dense.
Syntax
call slaed8 ( icompq , k , n , qsiz , d , q , ldq , indxq , rho , cutpnt , z , dlamda , q2 , ldq2 , w , perm , givptr , givcol , givnum , indxp , indx , info )
call dlaed8 ( icompq , k , n , qsiz , d , q , ldq , indxq , rho , cutpnt , z , dlamda , q2 , ldq2 , w , perm , givptr , givcol , givnum , indxp , indx , info )
call claed8 ( k , n , qsiz , q , ldq , d , rho , cutpnt , z , dlamda , q2 , ldq2 , w , indxp , indx , indxq , perm , givptr , givcol , givnum , info )
call zlaed8 ( k , n , qsiz , q , ldq , d , rho , cutpnt , z , dlamda , q2 , ldq2 , w , indxp , indx , indxq , perm , givptr , givcol , givnum , info )
Include Files
mkl.fi
Description
slaed8 dlaed8 claed8 zlaed8
The routine merges the two sets of eigenvalues together into a single sorted set. Then it tries to deflate the size of the problem. There are two ways in which deflation can occur: when two or more eigenvalues are close together or if there is a tiny element in the z vector. For each such occurrence the order of the related secular equation problem is reduced by one.
Input Parameters
- icompq
-
INTEGER . Used with real flavors only. If icompq = 0 , compute eigenvalues only. If icompq = 1 , compute eigenvectors of original dense symmetric matrix also. On entry, the array q must contain the orthogonal matrix used to reduce the original matrix to tridiagonal form.
- n
-
INTEGER . The dimension of the symmetric tridiagonal matrix ( n≥ 0 ).
- cutpnt
-
INTEGER . The location of the last eigenvalue in the leading sub-matrix. min(1,n) ≤ cutpnt ≤ n .
- qsiz
-
INTEGER . The dimension of the orthogonal/unitary matrix used to reduce the full matrix to tridiagonal form; qsiz≥n (for real flavors, qsiz≥n if icompq = 1) .
- d , z
-
REAL for slaed8 / claed8 DOUBLE PRECISION for dlaed8 / zlaed8 . Arrays, dimension at least max(1, n ) each. The array d (*) contains the eigenvalues of the two submatrices to be combined. On entry, z (*) contains the updating vector (the last row of the first sub-eigenvector matrix and the first row of the second sub-eigenvector matrix). The contents of z are destroyed by the updating process.
- q
-
REAL for slaed8 DOUBLE PRECISION for dlaed8 COMPLEX for claed8 DOUBLE COMPLEX for zlaed8 . Array q ( ldq , *). The second dimension of q must be at least max(1, n) . On entry, q contains the eigenvectors of the partially solved system which has been previously updated in matrix multiplies with other partially solved eigensystems. For real flavors, If icompq = 0 , q is not referenced.
- ldq
-
INTEGER . The leading dimension of the array q ; ldq≥ max(1, n) .
- ldq2
-
INTEGER . The leading dimension of the output array q2 ; ldq2≥ max(1, n) .
- indxq
-
INTEGER . Array, dimension ( n ). The permutation that separately sorts the two sub-problems in d into ascending order. Note that elements in the second half of this permutation must first have cutpnt added to their values in order to be accurate.
- rho
-
REAL for slaed8 / claed8 DOUBLE PRECISION for dlaed8 / zlaed8 . On entry, the off-diagonal element associated with the rank-1 cut which originally split the two submatrices which are now being recombined.
Output Parameters
- k
-
INTEGER . The number of non-deflated eigenvalues, and the order of the related secular equation.
- d
-
On exit, contains the trailing ( n - k ) updated eigenvalues (those which were deflated) sorted into increasing order.
- z
-
On exit, the updating process destroys the contents of z .
- q
-
On exit, q contains the trailing ( n - k ) updated eigenvectors (those which were deflated) in its last ( n - k ) columns.
- indxq
-
INTEGER . Array, dimension ( n ). The permutation of merged eigenvalues set.
- rho
-
On exit, rho has been modified to the value required by ?laed3 .
- dlamda , w
-
REAL for slaed8 / claed8 DOUBLE PRECISION for dlaed8 / zlaed8 . Arrays, dimension ( n ) each. The array dlamda (*) contains a copy of the first k eigenvalues which will be used by ?laed3 to form the secular equation. The array w (*) will hold the first k values of the final deflation-altered z -vector and will be passed to ?laed3 .
- q2
-
REAL for slaed8 DOUBLE PRECISION for dlaed8 COMPLEX for claed8 DOUBLE COMPLEX for zlaed8 . Array q2 ( ldq2 , *). The second dimension of q2 must be at least max(1, n) . Contains a copy of the first k eigenvectors which will be used by slaed7 / dlaed7 in a matrix multiply ( sgemm / dgemm ) to update the new eigenvectors. For real flavors, If icompq = 0 , q2 is not referenced.
- indxp , indx
-
INTEGER . Workspace arrays, dimension ( n ) each. The array indxp (*) will contain the permutation used to place deflated values of d at the end of the array. On output, indxp (1: k ) points to the nondeflated d -values and indxp ( k +1: n ) points to the deflated eigenvalues. The array indx (*) will contain the permutation used to sort the contents of d into ascending order.
- perm
-
INTEGER . Array, dimension ( n ). Contains the permutations (from deflation and sorting) to be applied to each eigenblock.
- givptr
-
INTEGER . Contains the number of Givens rotations which took place in this subproblem.
- givcol
-
INTEGER . Array, dimension (2, n ). Each pair of numbers indicates a pair of columns to take place in a Givens rotation.
- givnum
-
REAL for slaed8 / claed8 DOUBLE PRECISION for dlaed8 / zlaed8 . Array, dimension (2, n ). Each number indicates the S value to be used in the corresponding Givens rotation.
info
INTEGER .
If info = 0 , the execution is successful.
If info = -i , the i- th parameter had an illegal value.