Visible to Intel only — GUID: GUID-1E8477BE-5F67-45C4-95E0-461C19C838CB
Visible to Intel only — GUID: GUID-1E8477BE-5F67-45C4-95E0-461C19C838CB
?lasq2
Computes all the eigenvalues of the symmetric positive definite tridiagonal matrix associated with the quotient difference array z to high relative accuracy. Used by ?bdsqr and ?stegr.
call slasq2( n, z, info )
call dlasq2( n, z, info )
- mkl.fi
The routine ?lasq2 computes all the eigenvalues of the symmetric positive definite tridiagonal matrix associated with the quotient difference array z to high relative accuracy, in the absence of denormalization, underflow and overflow.
To see the relation of z to the tridiagonal matrix, let L be a unit lower bidiagonal matrix with subdiagonals z(2,4,6,,..) and let U be an upper bidiagonal matrix with 1's above and diagonal z(1,3,5,,..). The tridiagonal is LU or, if you prefer, the symmetric tridiagonal to which it is similar.
- n
-
INTEGER. The number of rows and columns in the matrix. n≥ 0.
- z
-
REAL for slasq2
DOUBLE PRECISION for dlasq2.
Array, DIMENSION (4 * n).
On entry, z holds the quotient difference array.
- z
-
On exit, entries 1 to n hold the eigenvalues in decreasing order, z(2n+1) holds the trace, and z(2n+2) holds the sum of the eigenvalues. If n > 2, then z(2n+3) holds the iteration count, z(2n+4) holds ndivs/nin2, and z(2n+5) holds the percentage of shifts that failed.
- info
-
INTEGER.
= 0: successful exit;
< 0: if the i-th argument is a scalar and had an illegal value, then info = -i, if the i-th argument is an array and the j-entry had an illegal value, then info = -(i*100+ j);
> 0: the algorithm failed:
= 1, a split was marked by a positive value in e;
= 2, current block of z not diagonalized after 100*n iterations (in inner while loop) - On exit z holds a quotient difference array with the same eigenvalues as the z array on entry;
= 3, termination criterion of outer while loop not met (program created more than n unreduced blocks).
The routine ?lasq2 defines a logical variable, ieee, which is .TRUE. on machines which follow ieee-754 floating-point standard in their handling of infinities and NaNs, and .FALSE. otherwise. This variable is passed to ?lasq3.