SRC/clags2.f(3)

🌸 NAME 🌸

okay bestie, this is SRC/clags2.f β€” yes, the Library Functions Manual page for it, folded in near the top so we don’t do the boring header-copy thing. The whole page is lowkey obsessed with one Fortran subroutine: clags2. πŸ’…


✨ SYNOPSIS ✨

🧚 Functions/Subroutines 🧚

subroutine clags2 (upper, a1, a2, a3, b1, b2, b3, csu, snu, csv, snv,
    csq, snq)
    CLAGS2

so yeah, that’s the group chat invite list: upper, a1, a2, a3, b1, b2, b3, csu, snu, csv, snv, csq, and snq. 😌


🫢 Function/Subroutine Documentation 🫢

🌟 subroutine clags2 🌟

subroutine clags2 (logical upper, real a1, complex a2, real a3, real b1,
    complex b2, real b3, real csu, complex snu, real csv, complex snv, real
    csq, complex snq)
    CLAGS2

🎯 Purpose 🎯

okay so here’s the serve, bestie: CLAGS2 computes 2-by-2 unitary matrices U, V and Q, such that if ( UPPER ) then

!>
!> CLAGS2 computes 2-by-2 unitary matrices U, V and Q, such
!> that if ( UPPER ) then
!>
!>           U**H *A*Q = U**H *( A1 A2 )*Q = ( x  0  )
!>                             ( 0  A3 )     ( x  x  )
!> and
!>           V**H*B*Q = V**H *( B1 B2 )*Q = ( x  0  )
!>                            ( 0  B3 )     ( x  x  )
!>
!> or if ( .NOT.UPPER ) then
!>
!>           U**H *A*Q = U**H *( A1 0  )*Q = ( x  x  )
!>                             ( A2 A3 )     ( 0  x  )
!> and
!>           V**H *B*Q = V**H *( B1 0  )*Q = ( x  x  )
!>                             ( B2 B3 )     ( 0  x  )
!> where
!>
!>   U = (   CSU    SNU ), V = (  CSV    SNV ),
!>       ( -SNU**H  CSU )      ( -SNV**H CSV )
!>
!>   Q = (   CSQ    SNQ )
!>       ( -SNQ**H  CSQ )
!>
!> The rows of the transformed A and B are parallel. Moreover, if the
!> input 2-by-2 matrix A is not zero, then the transformed (1,1) entry
!> of A is not zero. If the input matrices A and B are both not zero,
!> then the transformed (2,2) element of B is not zero, except when the
!> first rows of input A and B are parallel and the second rows are
!> zero.
!>

short version: the rows of the transformed A and B are parallel. and if the input 2-by-2 matrix A is not zero, then the transformed (1,1) entry of A is not zero. if the input matrices A and B are both not zero, then the transformed (2,2) element of B is not zero, except when the first rows of input A and B are parallel and the second rows are zero. that’s the whole tea. πŸ«–βœ¨

πŸ“ Parameters πŸ“

  • UPPER β€” UPPER is LOGICAL. if = .TRUE. then the input matrices A and B are upper triangular. if = .FALSE. then the input matrices A and B are lower triangular. choose your fighter. πŸ’…
  • A1 β€” A1 is REAL.
  • A2 β€” A2 is COMPLEX.
  • A3 β€” A3 is REAL. on entry, A1, A2 and A3 are elements of the input 2-by-2 upper (lower) triangular matrix A.
  • B1 β€” B1 is REAL.
  • B2 β€” B2 is COMPLEX.
  • B3 β€” B3 is REAL. on entry, B1, B2 and B3 are elements of the input 2-by-2 upper (lower) triangular matrix B.
  • CSU β€” CSU is REAL.
  • SNU β€” SNU is COMPLEX. this is the desired unitary matrix U, periodt.
  • CSV β€” CSV is REAL.
  • SNV β€” SNV is COMPLEX. this is the desired unitary matrix V, no cap.
  • CSQ β€” CSQ is REAL.
  • SNQ β€” SNQ is COMPLEX. this is the desired unitary matrix Q, iconic.

πŸ‘‘ Author πŸ‘‘

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

πŸ“Œ Definition at line 156 of file clags2.f πŸ“Œ


πŸ‘‘ Author πŸ‘‘

Generated automatically by Doxygen for LAPACK from the source code.


cute sign-off: this page is from LAPACK Version 3.12.0, source page SRC/clags2.f(3), and the header/manual-name situation is folded in at the top like a good bestie. bye bestie πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from