DLARRE(3)
π DLARRE(3) β LAPACK's tridiagonal eigenvalue bestie π
Okay so this is the DLARRE page from the LAPACK Library Functions Manual, and it lives in the source file dlarre.f. Buckle up, bestie: it's giving dense linear algebra but make it cute. π
πΈ NAME πΈ
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/dlarre.f
That's the file path this page points at. No cap.
β¨ SYNOPSIS β¨
π§ Functions/Subroutines
subroutine DLARRE (range, n, vl, vu, il, iu, d, e, e2, rtol1, rtol2,
spltol, nsplit, isplit, m, w, werr, wgap, iblock, indexw, gers,
pivmin, work, iwork, info)
DLARRE given the tridiagonal matrix T, sets small off-diagonal elements to zero and for each unreduced block Ti, finds base representations and eigenvalues. periodt.
π«Ά Function/Subroutine Documentation π«Ά
π« subroutine DLARRE π«
subroutine DLARRE (character range, integer n, double precision vl, double
precision vu, integer il, integer iu, double precision, dimension( * )
d, double precision, dimension( * ) e, double precision, dimension( * )
e2, double precision rtol1, double precision rtol2, double precision
spltol, integer nsplit, integer, dimension( * ) isplit, integer m,
double precision, dimension( * ) w, double precision, dimension( * )
werr, double precision, dimension( * ) wgap, integer, dimension( * )
iblock, integer, dimension( * ) indexw, double precision, dimension( * )
gers, double precision pivmin, double precision, dimension( * ) work,
integer, dimension( * ) iwork, integer info)
DLARRE given the tridiagonal matrix T, sets small off-diagonal elements to zero and for each unreduced block Ti, finds base representations and eigenvalues. iconic.
π― Purpose:
Okay so the goal is: to find the desired eigenvalues of a given real symmetric tridiagonal matrix T. DLARRE sets any off-diagonal elements to zero, and for each unreduced block T_i, it finds:
- (a) a suitable shift at one end of the block's spectrum,
- (b) the base representation,
T_i - sigma_i I = L_i D_i L_i^T, and - (c) eigenvalues of each
L_i D_i L_i^T.
The representations and eigenvalues found are then used by DSTEMR to compute the eigenvectors of T. The accuracy varies depending on whether bisection is used to find a few eigenvalues or the dqds algorithm (subroutine DLASQ2) to compute all and then discard any unwanted one. As an added benefit, DLARRE also outputs the n Gerschgorin intervals for the matrices L_i D_i L_i^T. iykyk.
π§Έ Parameters
RANGEβCHARACTER*1= 'A':()all eigenvalues will be found.= 'V':()all eigenvalues in the half-open interval(VL, VU]will be found.= 'I':()theIL-th throughIU-th eigenvalues (of the entire matrix) will be found.
NβINTEGER. The order of the matrix.N > 0.VLβDOUBLE PRECISION. IfRANGE='V', the lower bound for the eigenvalues. Eigenvalues less than or equal toVL, or greater thanVU, will not be returned.VL < VU. IfRANGE='I'or='A',DLARREcomputes bounds on the desired part of the spectrum.VUβDOUBLE PRECISION. IfRANGE='V', the upper bound for the eigenvalues. Eigenvalues less than or equal toVL, or greater thanVU, will not be returned.VL < VU. IfRANGE='I'or='A',DLARREcomputes bounds on the desired part of the spectrum.ILβINTEGER. IfRANGE='I', the index of the smallest eigenvalue to be returned.1 <= IL <= IU <= N.IUβINTEGER. IfRANGE='I', the index of the largest eigenvalue to be returned.1 <= IL <= IU <= N.DβDOUBLE PRECISION array, dimension(N). On entry, theNdiagonal elements of the tridiagonal matrixT. On exit, theNdiagonal elements of the diagonal matricesD_i.EβDOUBLE PRECISION array, dimension(N). On entry, the first(N-1)entries contain the subdiagonal elements of the tridiagonal matrixT;E(N)need not be set. On exit,Econtains the subdiagonal elements of the unit bidiagonal matricesL_i. The entriesE( ISPLIT( I ) ),1 <= I <= NSPLIT, contain the base pointssigma_ion output.E2βDOUBLE PRECISION array, dimension(N). On entry, the first(N-1)entries contain the SQUARES of the subdiagonal elements of the tridiagonal matrixT;E2(N)need not be set. On exit, the entriesE2( ISPLIT( I ) ),1 <= I <= NSPLIT, have been set to zero.RTOL1βDOUBLE PRECISION.RTOL2βDOUBLE PRECISION. Parameters for bisection. An interval[LEFT,RIGHT]has converged ifRIGHT-LEFT < MAX( RTOL1*GAP, RTOL2*MAX(|LEFT|,|RIGHT|) ).SPLTOLβDOUBLE PRECISION. The threshold for splitting.NSPLITβINTEGER. The number of blocksTsplits into.1 <= NSPLIT <= N.ISPLITβINTEGER array, dimension(N). The splitting points, at whichTbreaks up into blocks. The first block consists of rows/columns1toISPLIT(1), the second of rows/columnsISPLIT(1)+1throughISPLIT(2), etc., and theNSPLIT-th consists of rows/columnsISPLIT(NSPLIT-1)+1throughISPLIT(NSPLIT)=N.MβINTEGER. The total number of eigenvalues (of allL_i D_i L_i^T) found.WβDOUBLE PRECISION array, dimension(N). The firstMelements contain the eigenvalues. The eigenvalues of each of the blocks,L_i D_i L_i^T, are sorted in ascending order (DLARREmay use the remainingN-Melements as workspace).WERRβDOUBLE PRECISION array, dimension(N). The error bound on the corresponding eigenvalue inW.WGAPβDOUBLE PRECISION array, dimension(N). The separation from the right neighbor eigenvalue inW. The gap is only with respect to the eigenvalues of the same block as each block has its own representation tree. Exception: at the right end of a block we store the left gap.IBLOCKβINTEGER array, dimension(N). The indices of the blocks (submatrices) associated with the corresponding eigenvalues inW;IBLOCK(i)=1if eigenvalueW(i)belongs to the first block from the top,=2ifW(i)belongs to the second block, etc.INDEXWβINTEGER array, dimension(N). The indices of the eigenvalues within each block (submatrix); for example,INDEXW(i)= 10andIBLOCK(i)=2imply that thei-th eigenvalueW(i)is the10-th eigenvalue in block2.GERSβDOUBLE PRECISION array, dimension(2*N). TheNGerschgorin intervals (thei-th Gerschgorin interval is(GERS(2*i-1), GERS(2*i))).PIVMINβDOUBLE PRECISION. The minimum pivot in the Sturm sequence forT.WORKβDOUBLE PRECISION array, dimension(6*N). Workspace.IWORKβINTEGER array, dimension(5*N). Workspace.INFOβINTEGER= 0: successful exit> 0: A problem occurred inDLARRE.< 0: One of the called subroutines signaled an internal problem. Needs inspection of the corresponding parameterIINFOfor further information.=-1: Problem inDLARRD.= 2: No base representation could be found inMAXTRYiterations. IncreasingMAXTRYand recompilation might be a remedy.=-3: Problem inDLARRBwhen computing the refined root representation forDLASQ2.=-4: Problem inDLARRBwhen preforming bisection on the desired part of the spectrum.=-5: Problem inDLASQ2.=-6: Problem inDLASQ2.
Heads up, bestie: a negativeINFOmeans one of the called subroutines signaled an internal problem, and you gotta inspect the corresponding parameterIINFOfor more info. Not me ignoring an error code. π
π Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
π₯ Further Details:
The base representations are required to suffer very little element growth and consequently define all their eigenvalues to high relative accuracy.
π§ Contributors:
- Beresford Parlett, University of California, Berkeley, USA
- Jim Demmel, University of California, Berkeley, USA
- Inderjit Dhillon, University of Texas, Austin, USA
- Osni Marques, LBNL/NERSC, USA
- Christof Voemel, University of California, Berkeley, USA
π Definition at line 301 of file dlarre.f.
π Author
Generated automatically by Doxygen for LAPACK from the source code.
That's the whole vibe check, bestie. Signing off from LAPACK Version 3.12.0, page source /home/abui...RC/dlarre.f(3). πβ¨
π¦ 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