
DLASQ2(l) ) DLASQ2(l)
NAME
DLASQ2  compute 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
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
ieee754 floatingpoint standard in their handling of infinities and NaNs, and false oth
erwise. This variable is passed to DLASQ3.
ARGUMENTS
N (input) INTEGER
The number of rows and columns in the matrix. N >= 0.
Z (workspace) 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 ith argument is a scalar and had an illegal value, then INFO = i, if
the ith argument is an array and the jentry 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 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. Pingpong is controlled
by PP (alternates between 0 and 1).
LAPACK version 3.0 15 June 2000 DLASQ2(l) 
