SLARRE(3)
π
slarre.f(3) β Library Functions Manual π
πΈ NAME
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/slarre.f
That's the file, bestie β full path and everything.
β¨ SYNOPSIS
Functions/Subroutines
subroutine SLARRE (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)
Okay so SLARRE takes the tridiagonal matrix T, sets small off-diagonal elements to zero, and for each unreduced block Ti, finds base representations and eigenvalues. Slay behavior, honestly.
π«Ά Function/Subroutine Documentation
subroutine SLARRE (...)
subroutine SLARRE (character range, integer n, real vl, real vu, integer il,
integer iu, real, dimension( * ) d, real, dimension( * ) e, real,
dimension( * ) e2, real rtol1, real rtol2, real spltol, integer nsplit,
integer, dimension( * ) isplit, integer m, real, dimension( * ) w, real,
dimension( * ) werr, real, dimension( * ) wgap, integer, dimension( * )
iblock, integer, dimension( * ) indexw, real, dimension( * ) gers, real
pivmin, real, dimension( * ) work, integer, dimension( * ) iwork,
integer info)
SLARRE given the tridiagonal matrix T, sets small off-diagonal elements to zero and for each unreduced block Ti, finds base representations and eigenvalues.
Purpose:
To find the desired eigenvalues of a given real symmetric tridiagonal matrix T, SLARRE 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 SSTEMR 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 SLASQ2) to compute all and then discard any unwanted one. As an added benefit, SLARRE also outputs the n Gerschgorin intervals for the matrices L_i D_i L_i^T.
Parameters
RANGEβRANGEisCHARACTER*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βNisINTEGER. The order of the matrix.N > 0.VLβVLisREAL.- If
RANGE='V', the lower bound for the eigenvalues. Eigenvalues less than or equal toVL, or greater thanVU, will not be returned.VL < VU. - If
RANGE='I'or='A',SLARREcomputes bounds on the desired part of the spectrum.
- If
VUβVUisREAL.- If
RANGE='V', the upper bound for the eigenvalues. Eigenvalues less than or equal toVL, or greater thanVU, will not be returned.VL < VU. - If
RANGE='I'or='A',SLARREcomputes bounds on the desired part of the spectrum.
- If
ILβILisINTEGER.- If
RANGE='I', the index of the smallest eigenvalue to be returned. 1 <= IL <= IU <= N.
- If
IUβIUisINTEGER.- If
RANGE='I', the index of the largest eigenvalue to be returned. 1 <= IL <= IU <= N.
- If
DβDisREALarray, dimension(N).- On entry, the
Ndiagonal elements of the tridiagonal matrixT. - On exit, the
Ndiagonal elements of the diagonal matricesD_i.
- On entry, the
EβEisREALarray, 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.
- On entry, the first
E2βE2isREALarray, 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 entries
E2( ISPLIT( I ) ),1 <= I <= NSPLIT, have been set to zero.
- On entry, the first
RTOL1βRTOL1isREAL. That's the whole note, bestie.RTOL2βRTOL2isREAL.- Parameters for bisection.
- An interval
[LEFT,RIGHT]has converged ifRIGHT-LEFT < MAX( RTOL1*GAP, RTOL2*MAX(|LEFT|,|RIGHT|) ).
SPLTOLβSPLTOLisREAL. The threshold for splitting.NSPLITβNSPLITisINTEGER. The number of blocksTsplits into.1 <= NSPLIT <= N.ISPLITβISPLITisINTEGERarray, dimension(N).- The splitting points, at which
Tbreaks up into blocks. - The first block consists of rows/columns
1toISPLIT(1), the second of rows/columnsISPLIT(1)+1throughISPLIT(2), etc., and theNSPLIT-th consists of rows/columnsISPLIT(NSPLIT-1)+1throughISPLIT(NSPLIT)=N.
- The splitting points, at which
MβMisINTEGER. The total number of eigenvalues (of allL_i D_i L_i^T) found.WβWisREALarray, dimension(N).- The first
Melements contain the eigenvalues. - The eigenvalues of each of the blocks,
L_i D_i L_i^T, are sorted in ascending order (SLARREmay use the remainingN-Melements as workspace).
- The first
WERRβWERRisREALarray, dimension(N). The error bound on the corresponding eigenvalue inW.WGAPβWGAPisREALarray, dimension(N).- The separation from the right neighbor eigenvalue in
W. - 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.
- The separation from the right neighbor eigenvalue in
IBLOCKβIBLOCKisINTEGERarray, 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βINDEXWisINTEGERarray, dimension(N). The indices of the eigenvalues within each block (submatrix); for example,INDEXW(i)= 10andIBLOCK(i)=2imply that the i-th eigenvalueW(i)is the 10-th eigenvalue in block 2.GERSβGERSisREALarray, dimension(2*N). TheNGerschgorin intervals (the i-th Gerschgorin interval is(GERS(2*i-1), GERS(2*i))).PIVMINβPIVMINisREAL. The minimum pivot in the Sturm sequence forT.WORKβWORKisREALarray, dimension(6*N). Workspace.IWORKβIWORKisINTEGERarray, dimension(5*N). Workspace.INFOβINFOisINTEGER.= 0: successful exit> 0: A problem occurred inSLARRE.< 0: One of the called subroutines signaled an internal problem. Needs inspection of the corresponding parameterIINFOfor further information.=-1: Problem inSLARRD.= 2: No base representation could be found inMAXTRYiterations. IncreasingMAXTRYand recompilation might be a remedy.=-3: Problem inSLARRBwhen computing the refined root representation forSLASQ2.=-4: Problem inSLARRBwhen preforming bisection on the desired part of the spectrum.=-5: Problem inSLASQ2.=-6: Problem inSLASQ2.
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 slarre.f.
Author
Generated automatically by Doxygen for LAPACK from the source code.
Okay that's the whole page, bestie π«Ά. The footer tea is: LAPACK, Version 3.12.0, and the file tag /home/abui...RC/slarre.f(3). The date slot is empty in this visible last line, so I'm not inventing one β periodt π
π
π¦ 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