SRC/dlasq2.f(3)
π SRC/dlasq2.f π
Okay bestie, welcome to the Library Functions Manual entry for SRC/dlasq2.f β the header has SRC/dlasq2.f(3) on both sides of that manual name, and weβre folding it in right here at the top instead of copying the whole line. Iconic. π
πΈ NAME πΈ
SRC/dlasq2.f
π¦ SYNOPSIS π¦
β¨ Functions/Subroutines β¨
subroutine dlasq2 (n, z, info)βDLASQ2computes all the eigenvalues of the symmetric positive definite tridiagonal matrix associated with the qd ArrayZto high relative accuracy. Used bysbdsqrandsstegr.
π Function/Subroutine 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 π
Okay so DLASQ2 computes all the eigenvalues of the symmetric positive definite tridiagonal matrix tied to the qd array Z to high relative accuracy β and the source really does say the high-relative-accuracy part twice, so the eigenvalues are computed to high relative accuracy in the absence of denormalization, underflow and overflow. No cap. β¨
To see how Z relates 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 the ieee-754 floating-point standard in their handling of infinities and NaNs, and false otherwise. This variable is passed to DLASQ3.
β Parameters β
NβNisINTEGER. The number of rows and columns in the matrix.N >= 0.ZβZisDOUBLE PRECISIONarray, dimension( 4*N ). On entryZholds the qd array. On exit, entries1toNhold the eigenvalues in decreasing order,Z( 2*N+1 )holds the trace, andZ( 2*N+2 )holds the sum of the eigenvalues. IfN > 2, thenZ( 2*N+3 )holds the iteration count,Z( 2*N+4 )holdsNDIVS/NIN^2, andZ( 2*N+5 )holds the percentage of shifts that failed.INFOβINFOisINTEGER.= 0: successful exit< 0: if the i-th argument is a scalar and had an illegal value, thenINFO = -i; if the i-th argument is an array and the j-entry had an illegal value, thenINFO = -(i*100+j)> 0: the algorithm failed= 1: a split was marked by a positive value inE= 2: current block ofZnot diagonalized after100*Niterations (in inner while loop). On exitZholds a qd array with the same eigenvalues as the givenZ.= 3: termination criterion of outer while loop not met (program created more thanNunreduced blocks)
π Author π
- Univ. of Tennessee
- 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.
π« Author π«
Generated automatically by Doxygen for LAPACK from the source code.
Sign-off from the footer, bestie: LAPACK Version 3.12.0, page SRC/dlasq2.f(3) β the original footer doesnβt show a separate date, so no date to report here. Mwah πβ¨
π¦ where this page comes from
- arch rolling: lapack-doc 3.12.1-2 Β· custom
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms