Developer Reference for Intel® oneAPI Math Kernel Library for Fortran
?larrb2
Provides limited bisection to locate eigenvalues for more accuracy.
Syntax
call slarrb2 ( n , d , lld , ifirst , ilast , rtol1 , rtol2 , offset , w , wgap , werr , work , iwork , pivmin , lgpvmn , lgspdm , twist , info )
call dlarrb2 ( n , d , lld , ifirst , ilast , rtol1 , rtol2 , offset , w , wgap , werr , work , iwork , pivmin , lgpvmn , lgspdm , twist , info )
Include Files
mkl_scalapack.h
Description
Given the relatively robust representation (RRR) LDLT , ?larrb2 does “limited” bisection to refine the eigenvalues of LDLT , w ( ifirst - offset ) through w ( ilast - offset ), with indices in a given range to more accuracy. Initial guesses for these eigenvalues are input in w , the corresponding estimate of the error in these guesses and their gaps are input in werr and wgap , respectively. During bisection, intervals [ left , right ] are maintained by storing their mid-points and semi-widths in the arrays w and werr respectively. The range of indices is specified by the ifirst , ilast , and offset parameters, as explained in Input Parameters .
Input Parameters
- n
-
INTEGER The order of the matrix.
- d
-
REAL for slarrb2 DOUBLE PRECISION for dlarrb2 Array of size n. The n diagonal elements of the diagonal matrix D .
- lld
-
REAL for slarrb2 DOUBLE PRECISION for dlarrb2 Array of size n -1.
The ( n -1) elements li * li * d ( i ) .
- ifirst
-
INTEGER The index of the first eigenvalue to be computed.
- ilast
-
INTEGER The index of the last eigenvalue to be computed.
- rtol1 , rtol2
-
REAL for slarrb2 DOUBLE PRECISION for dlarrb2 Tolerance for the convergence of the bisection intervals. An interval [ left , right ] has converged if right - left < max ( rtol1 * gap , rtol2 * max(| left | , | right | )) where gap is the (estimated) distance to the nearest eigenvalue.
- offset
-
INTEGER
Offset for the arrays w , wgap and werr , i.e., the ifirst - offset through ilast - offset elements of these arrays are to be used.
- w
-
REAL for slarrb2 DOUBLE PRECISION for dlarrb2 Array of size n
On input, w ( ifirst - offset ) through w ( ilast - offset ) are estimates of the eigenvalues of LDLT indexed ifirst through ilast .
- wgap
-
REAL for slarrb2 DOUBLE PRECISION for dlarrb2 Array of size n -1.
On input, the (estimated) gaps between consecutive eigenvalues of LDLT , i.e., wgap ( I - offset ) is the gap between eigenvalues I and I + 1. Note that if ifirst = ilast then wgap ( ifirst - offset ) must be set to zero.
- werr
-
REAL for slarrb2 DOUBLE PRECISION for dlarrb2 Array of size n.
On input, werr ( ifirst - offset ) through werr ( ilast - offset ) are the errors in the estimates of the corresponding elements in w .
- work
-
REAL for slarrb2 DOUBLE PRECISION for dlarrb2 (workspace) array of size 4* n . Workspace.
- iwork
-
(workspace) INTEGER array of size 2* n . Workspace.
- pivmin
-
REAL for slarrb2 DOUBLE PRECISION for dlarrb2 The minimum pivot in the Sturm sequence.
- lgpvmn
-
REAL for slarrb2 DOUBLE PRECISION for dlarrb2 Logarithm of pivmin , precomputed.
- lgspdm
-
REAL for slarrb2 DOUBLE PRECISION for dlarrb2 Logarithm of the spectral diameter, precomputed.
- twist
-
INTEGER The twist index for the twisted factorization that is used for the negcount . twist = n : Compute negcount from LDLT - λI = L+D+L+Ttwist = 1: Compute negcount from LDLT - λI = U-D-U-Ttwist = r , 1 < r < n : Compute negcount from LDLT - λI = NrΔrNrT
OUTPUT Parameters
- w
-
On output, the eigenvalue estimates in w are refined.
- wgap
-
On output, the eigenvalue gaps in wgap are refined.
- werr
-
On output, the errors in werr are refined.
- info
-
INTEGER Error flag.