DLASQ2(1LAPACK routine (version 3.2)DLASQ2(1)NAME
DLASQ2 - computes all the eigenvalues of the symmetric positive defi‐
nite tridiagonal matrix associated with the qd array Z to high relative
accuracy are computed to high relative accuracy, in the absence of
denormalization, underflow and overflow
SYNOPSIS
SUBROUTINE DLASQ2( N, Z, INFO )
INTEGER INFO, N
DOUBLE PRECISION Z( * )
PURPOSE
DLASQ2 computes all the eigenvalues of the symmetric positive definite
tridiagonal matrix associated with the qd array Z to high relative
accuracy are computed 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 L*U or, if you
prefer, the symmetric tridiagonal to which it is similar.
Note : DLASQ2 defines a logical variable, IEEE, which is true on
machines which follow ieee-754 floating-point standard in their han‐
dling of infinities and NaNs, and false otherwise. This variable is
passed to DLASQ3.
ARGUMENTS
N (input) INTEGER
The number of rows and columns in the matrix. N >= 0.
Z (input/output) DOUBLE PRECISION array, dimension ( 4*N )
On entry Z holds the qd array. On exit, entries 1 to N hold the
eigenvalues in decreasing order, Z( 2*N+1 ) holds the trace, and
Z( 2*N+2 ) holds the sum of the eigenvalues. If N > 2, then Z(
2*N+3 ) holds the iteration count, Z( 2*N+4 ) holds NDIVS/NIN^2,
and Z( 2*N+5 ) holds the percentage of shifts that failed.
INFO (output) 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, cur‐
rent block of Z not diagonalized after 30*N iterations (in inner
while loop) = 3, termination criterion of outer while loop not
met (program created more than N unreduced blocks)
FURTHER DETAILS
The shifts are accumulated in SIGMA. Iteration count is in ITER. Ping-
pong is controlled by PP (alternates between 0 and 1).
LAPACK routine (version 3.2) November 2008 DLASQ2(1)