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