SLAED8(3)
β¨ SLAED8 β¨
okay so first things first: this page is from the Library Functions Manual, and the star of the show lives at /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/slaed8.f (the header up top shortens that whole journey to /home/abui...RC/slaed8.f π
). It's a Fortran source file, and it's so slay.
π¦ SYNOPSIS π¦
Functions/Subroutines
subroutine SLAED8 (icompq, k, n, qsiz, d, q, ldq, indxq, rho, cutpnt, z,
dlambda, q2, ldq2, w, perm, givptr, givcol, givnum, indxp, indx,
info)
SLAED8 is the bestie that SSTEDC calls. It merges eigenvalues and deflates the secular equation, and it's the one you use when the original matrix is dense. periodt.
πΈ Function/Subroutine Documentation πΈ
π subroutine SLAED8 π
subroutine SLAED8 (integer icompq, integer k, integer n, integer qsiz, real,
dimension( * ) d, real, dimension( ldq, * ) q, integer ldq, integer,
dimension( * ) indxq, real rho, integer cutpnt, real, dimension( * ) z,
real, dimension( * ) dlambda, real, dimension( ldq2, * ) q2, integer
ldq2, real, dimension( * ) w, integer, dimension( * ) perm, integer
givptr, integer, dimension( 2, * ) givcol, real, dimension( 2, * )
givnum, integer, dimension( * ) indxp, integer, dimension( * ) indx,
integer info)
SLAED8 used by SSTEDC. Merges eigenvalues and deflates secular equation. Used when the original matrix is dense. (yes she's that girl, she's literally the dense-matrix specialist π«Ά)
π― Purpose π―
SLAED8 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.
so basically: merge the two eigenvalue sets, sort them, and then shrink the problem wherever it can. two ways to deflate β eigenvalues being cozy-close together, or a lil baby element showing up in the Z vector. every time that happens, the order of the secular equation problem drops by one. lowkey iconic π
π Parameters π
ICOMPQβICOMPQisINTEGER= 0: Compute eigenvalues only.= 1: Compute eigenvectors of original dense symmetric matrix also. On entry,Qcontains the orthogonal matrix used to reduce the original matrix to tridiagonal form.
KβKisINTEGER- The number of non-deflated eigenvalues, and the order of the related secular equation. the survivors, basically π
NβNisINTEGER- The dimension of the symmetric tridiagonal matrix.
N >= 0.
- The dimension of the symmetric tridiagonal matrix.
QSIZβQSIZisINTEGER- The dimension of the orthogonal matrix used to reduce the full matrix to tridiagonal form.
QSIZ >= NifICOMPQ = 1.
- The dimension of the orthogonal matrix used to reduce the full matrix to tridiagonal form.
DβDisREALarray, dimension(N)- On entry, the eigenvalues of the two submatrices to be combined. On exit, the trailing
(N-K)updated eigenvalues (those which were deflated) sorted into increasing order. she comes in as two squads and leaves sorted β¨
- On entry, the eigenvalues of the two submatrices to be combined. On exit, the trailing
QβQisREALarray, dimension(LDQ,N)- If
ICOMPQ = 0,Qis not referenced. Otherwise, on entry,Qcontains the eigenvectors of the partially solved system which has been previously updated in matrix multiplies with other partially solved eigensystems. On exit,Qcontains the trailing(N-K)updated eigenvectors (those which were deflated) in its lastN-Kcolumns.
- If
LDQβLDQisINTEGER- The leading dimension of the array
Q.LDQ >= max(1,N).
- The leading dimension of the array
INDXQβINDXQisINTEGERarray, dimension(N)- The permutation which separately sorts the two sub-problems in
Dinto ascending order. Note that elements in the second half of this permutation must first haveCUTPNTadded to their values in order to be accurate. (yes, added β don't skip that step bestie, or the numbers lie π)
- The permutation which separately sorts the two sub-problems in
RHOβRHOisREAL- On entry, the off-diagonal element associated with the rank-1 cut which originally split the two submatrices which are now being recombined. On exit,
RHOhas been modified to the value required bySLAED3. she gets a whole little glow-up on the way out π
- On entry, the off-diagonal element associated with the rank-1 cut which originally split the two submatrices which are now being recombined. On exit,
CUTPNTβCUTPNTisINTEGER- The location of the last eigenvalue in the leading sub-matrix.
min(1,N) <= CUTPNT <= N.
- The location of the last eigenvalue in the leading sub-matrix.
ZβZisREALarray, dimension(N)- On entry,
Zcontains the updating vector (the last row of the first sub-eigenvector matrix and the first row of the second sub-eigenvector matrix). On exit, the contents ofZare destroyed by the updating process. π like, fully gone. do not come looking for her afterwards.
- On entry,
DLAMBDAβDLAMBDAisREALarray, dimension(N)- A copy of the first
Keigenvalues which will be used bySLAED3to form the secular equation.
- A copy of the first
Q2βQ2isREALarray, dimension(LDQ2,N)- If
ICOMPQ = 0,Q2is not referenced. Otherwise, a copy of the firstKeigenvectors which will be used bySLAED7in a matrix multiply (SGEMM) to update the new eigenvectors.
- If
LDQ2βLDQ2isINTEGER- The leading dimension of the array
Q2.LDQ2 >= max(1,N).
- The leading dimension of the array
WβWisREALarray, dimension(N)- The first
kvalues of the final deflation-altered z-vector and will be passed toSLAED3.
- The first
PERMβPERMisINTEGERarray, dimension(N)- The permutations (from deflation and sorting) to be applied to each eigenblock.
GIVPTRβGIVPTRisINTEGER- The number of Givens rotations which took place in this subproblem. count 'em π₯
GIVCOLβGIVCOLisINTEGERarray, dimension(2, N)- Each pair of numbers indicates a pair of columns to take place in a Givens rotation.
GIVNUMβGIVNUMisREALarray, dimension(2, N)- Each number indicates the
Svalue to be used in the corresponding Givens rotation.
- Each number indicates the
INDXPβINDXPisINTEGERarray, dimension(N)- The permutation used to place deflated values of
Dat the end of the array.INDXP(1:K)points to the nondeflated D-values andINDXP(K+1:N)points to the deflated eigenvalues.
- The permutation used to place deflated values of
INDXβINDXisINTEGERarray, dimension(N)- The permutation used to sort the contents of
Dinto ascending order.
- The permutation used to sort the contents of
INFOβINFOisINTEGER= 0: successful exit. π< 0: ifINFO = -i, the i-th argument had an illegal value. π
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
π§ Contributors: π§
Jeff Rutter, Computer Science Division, University of California at Berkeley, USA β ty for your service, king π«Ά
Definition at line 240 of file slaed8.f.
β Author β
Generated automatically by Doxygen for LAPACK from the source code. (no human wrote this bit, the robot did π€β¨)
and that's the whole page bestie β no cap, every single parameter accounted for π
signing off from the Library Functions Manual: this was slaed8.f(3) from LAPACK Version 3.12.0, path vibes /home/abui...RC/slaed8.f(3). drink some water, check your LDQ, and slay the day ππ
π¦ where this page comes from
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms