SRC/slag2.f(3)

πŸ’– NAME πŸ’–

Welcome to SRC/slag2.f(3), bestie! The manual name is Library Functions Manual, and this page is all about SRC/slag2.f β€” the slag2 subroutine. She computes a 2-by-2 generalized eigenvalue problem and does scaling so we don't over-/underflow. Iconic behavior, no cap. πŸ¦‹

✨ SYNOPSIS ✨

🧚 Functions/Subroutines 🧚

  • subroutine slag2 (a, lda, b, ldb, safmin, scale1, scale2, wr1, wr2, wi) β€” SLAG2 computes the eigenvalues of a 2-by-2 generalized eigenvalue problem, with scaling as necessary to avoid over-/underflow.

🌈 Function/Subroutine Documentation 🌈

🌸 subroutine slag2 🌸

subroutine slag2 (real, dimension( lda, * ) a, integer lda, real, dimension(
    ldb, * ) b, integer ldb, real safmin, real scale1, real scale2, real
    wr1, real wr2, real wi)

SLAG2 computes the eigenvalues of a 2-by-2 generalized eigenvalue problem, with scaling as necessary to avoid over-/underflow.

✨ Purpose ✨

Okay so SLAG2 computes the eigenvalues of a 2 x 2 generalized eigenvalue problem A - w B, with scaling as necessary to avoid over-/underflow.

The scaling factor results in a modified eigenvalue equation:

s A - w B

where s is a non-negative scaling factor chosen so that w, w B, and s A do not overflow and, if possible, do not underflow, either.

πŸ“ Parameters πŸ“

  • A β€” A is REAL array, dimension (LDA, 2). On entry, the 2 x 2 matrix A. It is assumed that its 1-norm is less than 1/SAFMIN. Entries less than sqrt(SAFMIN)*norm(A) are subject to being treated as zero.
  • LDA β€” LDA is INTEGER. The leading dimension of the array A. LDA >= 2.
  • B β€” B is REAL array, dimension (LDB, 2). On entry, the 2 x 2 upper triangular matrix B. It is assumed that the one-norm of B is less than 1/SAFMIN. The diagonals should be at least sqrt(SAFMIN) times the largest element of B (in absolute value); if a diagonal is smaller than that, then +/- sqrt(SAFMIN) will be used instead of that diagonal.
  • LDB β€” LDB is INTEGER. The leading dimension of the array B. LDB >= 2.
  • SAFMIN β€” SAFMIN is REAL. The smallest positive number s.t. 1/SAFMIN does not overflow. (This should always be SLAMCH('S') -- it is an argument in order to avoid having to call SLAMCH frequently.)
  • SCALE1 β€” SCALE1 is REAL. A scaling factor used to avoid over-/underflow in the eigenvalue equation which defines the first eigenvalue. If the eigenvalues are complex, then the eigenvalues are ( WR1 +/- WI i ) / SCALE1 (which may lie outside the exponent range of the machine), SCALE1=SCALE2, and SCALE1 will always be positive. If the eigenvalues are real, then the first (real) eigenvalue is WR1 / SCALE1, but this may overflow or underflow, and in fact, SCALE1 may be zero or less than the underflow threshold if the exact eigenvalue is sufficiently large.
  • SCALE2 β€” SCALE2 is REAL. A scaling factor used to avoid over-/underflow in the eigenvalue equation which defines the second eigenvalue. If the eigenvalues are complex, then SCALE2=SCALE1. If the eigenvalues are real, then the second (real) eigenvalue is WR2 / SCALE2, but this may overflow or underflow, and in fact, SCALE2 may be zero or less than the underflow threshold if the exact eigenvalue is sufficiently large.
  • WR1 β€” WR1 is REAL. If the eigenvalue is real, then WR1 is SCALE1 times the eigenvalue closest to the (2,2) element of A B**(-1). If the eigenvalue is complex, then WR1=WR2 is SCALE1 times the real part of the eigenvalues.
  • WR2 β€” WR2 is REAL. If the eigenvalue is real, then WR2 is SCALE2 times the other eigenvalue. If the eigenvalue is complex, then WR1=WR2 is SCALE1 times the real part of the eigenvalues.
  • WI β€” WI is REAL. If the eigenvalue is real, then WI is zero. If the eigenvalue is complex, then WI is SCALE1 times the imaginary part of the eigenvalues. WI will always be non-negative.

πŸ‘‘ Author πŸ‘‘

  • Univ. of Tennessee
  • Univ. of California Berkeley
  • Univ. of Colorado Denver
  • NAG Ltd.

Definition at line 154 of file slag2.f.

πŸ“ Author πŸ“

Generated automatically by Doxygen for LAPACK from the source code.


Bye bestie! πŸ’– This footer is serving LAPACK, Version 3.12.0, and SRC/slag2.f(3) β€” and there's no separate date printed there, so we're not inventing one. Mwah! βœ¨πŸŽ€πŸ«Ά

πŸ“¦ where this page comes from