SLASQ2(3)

πŸ“¦ version 3.12.0, in opensuse-leap 16.0

πŸ’– SLASQ2 πŸ’–

okay so bestie, welcome to the Library Functions Manual page for slasq2.f(3) β€” aka SLASQ2, aka the high-relative-accuracy eigenvalue moment. It's giving LAPACK-core, qd-array main character energy, and we're gonna read the whole thing together 🫢


πŸŽ€ NAME πŸŽ€

/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/slasq2.f


✨ SYNOPSIS ✨

Functions/Subroutines

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 πŸ’…


πŸ¦‹ Function/Subroutine Documentation πŸ¦‹

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. No cap, that's the whole serve ✨

πŸ’… Purpose πŸ’…

okay so the purpose is literally: SLASQ2 computes all the eigenvalues of the symmetric positive definite tridiagonal matrix associated with the qd array Z to high relative accuracy β€” and those eigenvalues are computed to high relative accuracy in the absence of denormalization, underflow and overflow. It's that serious, bestie πŸ’…

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 β€” N is INTEGER. It's 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 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.


okay bestie, that's the whole page πŸ’– stay accurate, stay high-relative, and remember the qd array is literally the moment. This footer is giving LAPACK Version 3.12.0 and page path /home/abui...RC/slasq2.f(3) β€” no date listed, so no invented date, periodt ✨

πŸ“¦ where this page comes from