ZLAEV2(3)

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

🌸 NAME 🌸

okay so bestie, this is the Library Functions Manual page for the Fortran file below. The header grabber labels it /home/abui...RC/zlaev2.f(3), and the full NAME path is:

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

That’s the whole NAME section β€” no cap, it’s just the path. πŸ’…


✨ SYNOPSIS ✨

✨ Functions/Subroutines ✨

  • subroutine ZLAEV2 (a, b, c, rt1, rt2, cs1, sn1) β€” ZLAEV2 computes the eigenvalues and eigenvectors of a 2-by-2 symmetric/Hermitian matrix. Slay.
subroutine ZLAEV2 (a, b, c, rt1, rt2, cs1, sn1)

πŸ’… Function/Subroutine Documentation πŸ’…

subroutine ZLAEV2 (complex*16 a, complex*16 b, complex*16 c, double precision rt1, double precision rt2, double precision cs1, complex*16 sn1)

ZLAEV2 computes the eigenvalues and eigenvectors of a 2-by-2 symmetric/Hermitian matrix. Iconic behavior, honestly.

🎯 Purpose

okay so here’s the main-character math. ZLAEV2 computes the eigendecomposition of a 2-by-2 Hermitian matrix:

!> ZLAEV2 computes the eigendecomposition of a 2-by-2 Hermitian matrix
!>    [  A         B  ]
!>    [  CONJG(B)  C  ].
!> On return, RT1 is the eigenvalue of larger absolute value, RT2 is the
!> eigenvalue of smaller absolute value, and (CS1,SN1) is the unit right
!> eigenvector for RT1, giving the decomposition
!>
!> [ CS1  CONJG(SN1) ] [    A     B ] [ CS1 -CONJG(SN1) ] = [ RT1  0  ]
!> [-SN1     CS1     ] [ CONJG(B) C ] [ SN1     CS1     ]   [  0  RT2 ].
!>

So on return: RT1 is the eigenvalue of larger absolute value, RT2 is the eigenvalue of smaller absolute value, and (CS1,SN1) is the unit right eigenvector for RT1. That decomposition is literally right there. πŸ’–

🧸 Parameters

  • A β€” A is COMPLEX*16. It’s the (1,1) element of the 2-by-2 matrix. πŸŽ€
  • B β€” B is COMPLEX*16. It’s the (1,2) element and the conjugate of the (2,1) element of the 2-by-2 matrix. πŸ¦‹
  • C β€” C is COMPLEX*16. It’s the (2,2) element of the 2-by-2 matrix. 🌸
  • RT1 β€” RT1 is DOUBLE PRECISION. It’s the eigenvalue of larger absolute value. The main character eigenvalue, lowkey. πŸ‘‘
  • RT2 β€” RT2 is DOUBLE PRECISION. It’s the eigenvalue of smaller absolute value. πŸ“
  • CS1 β€” CS1 is DOUBLE PRECISION. That’s the whole parameter note for this one, bestie. πŸ’œ
  • SN1 β€” SN1 is COMPLEX*16. The vector (CS1, SN1) is a unit right eigenvector for RT1. Periodt. ✨

πŸ’– Author

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

πŸ”Ž Further Details

  • RT1 is accurate to a few ulps barring over/underflow. ✨
  • RT2 may be inaccurate if there is massive cancellation in the determinant A*C-B*B; higher precision or correctly rounded or correctly truncated arithmetic would be needed to compute RT2 accurately in all cases. This is the important caveat, bestie β€” don’t ignore it. 😭
  • CS1 and SN1 are accurate to a few ulps barring over/underflow. 🫢
  • Overflow is possible only if RT1 is within a factor of 5 of overflow. ⭐
  • Underflow is harmless if the input data is 0 or exceeds underflow_threshold / macheps. πŸ’€

Definition at line 120 of file zlaev2.f.


πŸ“ Author πŸ“

Generated automatically by Doxygen for LAPACK from the source code.


mwah πŸ’‹ β€” footer sign-off vibes: LAPACK Version 3.12.0, /home/abui...RC/zlaev2.f(3). That’s the source/version and path, periodt. 🫢

πŸ“¦ where this page comes from