naginterfaces.library.lapackeig.dstebz

naginterfaces.library.lapackeig.dstebz(erange, order, vl, vu, il, iu, abstol, d, e)[source]

dstebz computes some (or all) of the eigenvalues of a real symmetric tridiagonal matrix, by bisection.

For full information please refer to the NAG Library document for f08jj

https://support.nag.com/numeric/nl/nagdoc_30.1/flhtml/f08/f08jjf.html

Parameters
erangestr, length 1

Indicates which eigenvalues are required.

All the eigenvalues are required.

All the eigenvalues in the half-open interval (,] are required.

Eigenvalues with indices to are required.

orderstr, length 1

Indicates the order in which the eigenvalues and their block numbers are to be stored.

The eigenvalues are to be grouped by split-off block and ordered from smallest to largest within each block.

The eigenvalues for the entire matrix are to be ordered from smallest to largest.

vlfloat

If , the lower and upper bounds, respectively, of the half-open interval within which the required eigenvalues lie.

If or , is not referenced.

vufloat

If , the lower and upper bounds, respectively, of the half-open interval within which the required eigenvalues lie.

If or , is not referenced.

ilint

If , the indices of the first and last eigenvalues, respectively, to be computed (assuming that the eigenvalues are in ascending order).

If or , is not referenced.

iuint

If , the indices of the first and last eigenvalues, respectively, to be computed (assuming that the eigenvalues are in ascending order).

If or , is not referenced.

abstolfloat

The absolute tolerance to which each eigenvalue is required. An eigenvalue (or cluster) is considered to have converged if it lies in an interval of width . If , the tolerance is taken as .

dfloat, array-like, shape

The diagonal elements of the tridiagonal matrix .

efloat, array-like, shape

The off-diagonal elements of the tridiagonal matrix .

Returns
mint

, the actual number of eigenvalues found.

nsplitint

The number of diagonal blocks which constitute the tridiagonal matrix .

wfloat, ndarray, shape

The required eigenvalues of the tridiagonal matrix stored in to .

iblockint, ndarray, shape

At each row/column where is zero or negligible, is considered to split into a block diagonal matrix and contains the block number of the eigenvalue stored in , for . Note that for some whenever = 1 or 3 (see Exceptions) and or .

isplitint, ndarray, shape

The leading elements contain the points at which splits up into sub-matrices as follows. The first sub-matrix consists of rows/columns to , the second sub-matrix consists of rows/columns to , , and the (th) sub-matrix consists of rows/columns to ().

Raises
NagValueError
(errno )

On entry, error in parameter .

Constraint: , or .

(errno )

On entry, error in parameter .

Constraint: or .

(errno )

On entry, error in parameter .

Constraint: .

(errno )

On entry, error in parameter .

Constraint: .

(errno )

On entry, error in parameter .

Constraint: and .

(errno )

On entry, error in parameter .

Constraint: and .

(errno )

If , the algorithm failed to compute some (or all) of the required eigenvalues. Try calling the function again with .

(errno )

If , the algorithm failed to compute some (or all) of the required eigenvalues. Try calling the function again with . If or , the algorithm failed to compute some (or all) of the required eigenvalues to the required accuracy. More precisely, indicates that eigenvalue (stored in ) failed to converge.

(errno )

No eigenvalues have been computed. The floating-point arithmetic on the computer is not behaving as expected.

Warns
NagAlgorithmicWarning
(errno )

If or , the algorithm failed to compute some (or all) of the required eigenvalues to the required accuracy. More precisely, indicates that eigenvalue (stored in ) failed to converge.

Notes

dstebz uses bisection to compute some or all of the eigenvalues of a real symmetric tridiagonal matrix .

It searches for zero or negligible off-diagonal elements of to see if the matrix splits into block diagonal form:

It performs bisection on each of the blocks and returns the block index of each computed eigenvalue, so that a subsequent call to dstein() to compute eigenvectors can also take advantage of the block structure.

References

Kahan, W, 1966, Accurate eigenvalues of a symmetric tridiagonal matrix, Report CS41, Stanford University