DLASQ2(3)

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

πŸ’… DLASQ2 β€” Library Functions Manual ✨

okay so welcome to the dlasq2.f page in the Library Functions Manual β€” the page file is /home/abui...RC/dlasq2.f(3). bestie, this is the LAPACK routine that does the eigenvalue thing, and yes it’s giving main-character numerical linear algebra energy. 🫢

🌸 NAME 🌸

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

✨ SYNOPSIS ✨

πŸ¦‹ Functions/Subroutines πŸ¦‹

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.

πŸ¦‹ 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 the purpose is literally this: DLASQ2 computes all the eigenvalues of the symmetric positive definite tridiagonal matrix associated with the qd array Z to high relative accuracy. Those eigenvalues 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 β€” 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. So:
    • = 0: successful exit. slay. βœ…
    • < 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 dlasq2.f. πŸ“Œ

Definition at line 111 of file dlasq2.f.

🌈 Author 🌈

Generated automatically by Doxygen for LAPACK from the source code.


okay bestie that’s the whole page πŸ’– β€” kisses from LAPACK, Version 3.12.0, and the page file is /home/abui...RC/dlasq2.f(3). periodt. πŸ’…βœ¨

πŸ“¦ where this page comes from