table of contents
lasq2(3) | Library Functions Manual | lasq2(3) |
NAME¶
lasq2 - lasq2: dqds step
SYNOPSIS¶
Functions¶
subroutine DLASQ2 (n, z, info)
DLASQ2 computes all the eigenvalues of the symmetric positive definite
tridiagonal matrix associated with the qd Array Z to high relative accuracy.
Used by sbdsqr and sstegr. subroutine SLASQ2 (n, z, info)
SLASQ2 computes all the eigenvalues of the symmetric positive definite
tridiagonal matrix associated with the qd Array Z to high relative accuracy.
Used by sbdsqr and sstegr.
Detailed Description¶
Function Documentation¶
subroutine DLASQ2 (integer n, double precision, dimension( * ) z, integer info)¶
DLASQ2 computes all the eigenvalues of the symmetric positive definite tridiagonal matrix associated with the qd Array Z to high relative accuracy. Used by sbdsqr and sstegr.
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 !> handling of infinities and NaNs, and false otherwise. This variable !> is passed to DLASQ3. !>
Parameters
!> N is INTEGER !> The number of rows and columns in the matrix. N >= 0. !>
Z
!> Z is 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
!> INFO is 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 qd array with the same eigenvalues as the given Z. !> = 3, termination criterion of outer while loop not met !> (program created more than N unreduced blocks) !>
Author
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Further Details:
!> !> Local Variables: I0:N0 defines a current unreduced segment of Z. !> The shifts are accumulated in SIGMA. Iteration count is in ITER. !> Ping-pong is controlled by PP (alternates between 0 and 1). !>
Definition at line 111 of file dlasq2.f.
subroutine SLASQ2 (integer n, real, dimension( * ) z, integer info)¶
SLASQ2 computes all the eigenvalues of the symmetric positive definite tridiagonal matrix associated with the qd Array Z to high relative accuracy. Used by sbdsqr and sstegr.
Purpose:
!> !> SLASQ2 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 : SLASQ2 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 SLASQ3. !>
Parameters
!> N is INTEGER !> The number of rows and columns in the matrix. N >= 0. !>
Z
!> Z is REAL 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
!> INFO is 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 qd array with the same eigenvalues as the given Z. !> = 3, termination criterion of outer while loop not met !> (program created more than N unreduced blocks) !>
Author
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Further Details:
!> !> Local Variables: I0:N0 defines a current unreduced segment of Z. !> The shifts are accumulated in SIGMA. Iteration count is in ITER. !> Ping-pong is controlled by PP (alternates between 0 and 1). !>
Definition at line 111 of file slasq2.f.
Author¶
Generated automatically by Doxygen for LAPACK from the source code.
Version 3.12.0 | LAPACK |