scipy.linalg.lapack.sstebz#

scipy.linalg.lapack.sstebz(d, e, range, vl, vu, il, iu, tol, order) = <flapack function sstebz>#

Compute selected eigenvalues of a symmetric tridiagonal matrix by bisection (LAPACK sstebz).

Parameters:
dndarray

Diagonal elements of the symmetric tridiagonal matrix, length n.

endarray

Off-diagonal elements, length n - 1.

rangeint

Which eigenvalues to compute: 0 for all, 1 for those in (vl, vu], 2 for those with indices il through iu.

vlfloat

Lower bound of the half-open interval; used only when range is 1.

vufloat

Upper bound of the half-open interval; used only when range is 1.

ilint

Index of the smallest eigenvalue to return, 1-based; used only when range is 2.

iuint

Index of the largest eigenvalue to return, 1-based; used only when range is 2.

tolfloat

Absolute tolerance for the eigenvalues. If not positive, machine precision times the matrix norm is used.

orderstr

'B' to order eigenvalues within each block, 'E' to order the whole set in ascending order.

Returns:
mint

Number of eigenvalues found; only w[:m] is meaningful.

wndarray

The computed eigenvalues, in the order selected by order.

iblockndarray

Block index of each eigenvalue: w[i] belongs to submatrix iblock[i], 1-based. A nonpositive entry marks an eigenvalue that failed to converge.

isplitndarray

Splitting points: submatrix i spans rows isplit[i-1] through isplit[i] - 1, 1-based.

infoint

0 on success; if negative, the -info-th argument had an illegal value; if positive, some eigenvalues failed to converge or were not counted reliably.