lasq2(3)
β¨ lasq2 β¨
okay so this one is from the Library Functions Manual, and it's literally the page for lasq2 β aka the dqds step π (yes that's the whole NAME, short and iconic, we love a minimal queen).
πΈ 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 bysbdsqrandsstegr.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 bysbdsqrandsstegr.
(bestie they are the same function, one is just the double precision version and one is the real version. twins fr fr π―)
π¦ Detailed Description π¦
like, the whole point of this page is the function documentation, so let's get into it β¬οΈ
π₯ 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βNisINTEGER. The number of rows and columns in the matrix.N >= 0.ZβZisDOUBLE PRECISIONarray, 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, 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 of Z not diagonalized after100*Niterations (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 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.
π§ 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βNisINTEGER. The number of rows and columns in the matrix.N >= 0.ZβZisREALarray, 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, 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 of Z not diagonalized after100*Niterations (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 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 slasq2.f.
π«Ά Author π«Ά
Generated automatically by Doxygen for LAPACK from the source code. (not a human, not a vibe, just a doc generator doing its thing π )
okay that's the whole page bestie, and the tea at the very bottom: this is LAPACK, Version 3.12.0 πβ¨ β that's the source/version line, consider it your cute sign-off. mwah, go diagonalize something π
π¦ 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