ZLAGS2(3)

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

πŸ’– NAME πŸ’–

ZLAGS2(3) β€” yup, this is the ZLAGS2(3) page, and it's living in the Library Functions Manual. The source file it's all about is /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/zlags2.f. no cap, that's the whole name section tea. πŸ¦‹


✨ SYNOPSIS ✨

🧚 Functions/Subroutines 🧚

okay bestie, here's the synopsis in code form so nothing gets lost:

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

ZLAGS2 β€” that's the main character right there. πŸ‘‘


🌸 Function/Subroutine Documentation 🌸

Here's the full signature with all the types, exactly as written:

subroutine ZLAGS2 (logical upper, double precision a1, complex*16 a2, double precision a3, double precision b1, complex*16 b2, double precision b3, double precision csu, complex*16 snu, double precision csv, complex*16 snv, double precision csq, complex*16 snq)

ZLAGS2 β€” she's doing 2-by-2 unitary matrix things, and it's honestly iconic. πŸ’…

πŸ”₯ Purpose πŸ”₯

okay so the whole point is this: ZLAGS2 computes 2-by-2 unitary matrices U, V and Q, and the exact receipts are here β€” copied character-for-character so we don't lose the math:

!>
!> ZLAGS2 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.
!>

the way that this is giving linear algebra main character energy... 😭✨

πŸ’… Parameters πŸ’…

okay, parameter roster time, bestie β€” every single one, with types and the exact details:

  • UPPER β€” is LOGICAL. = .TRUE.: the input matrices A and B are upper triangular. = .FALSE.: the input matrices A and B are lower triangular. 🫢
  • A1 β€” is DOUBLE PRECISION. πŸŽ€
  • A2 β€” is COMPLEX*16. πŸ¦‹
  • A3 β€” is DOUBLE PRECISION. On entry, A1, A2 and A3 are elements of the input 2-by-2 upper (lower) triangular matrix A. 🌸
  • B1 β€” is DOUBLE PRECISION. πŸ’œ
  • B2 β€” is COMPLEX*16. ✨
  • B3 β€” is DOUBLE PRECISION. On entry, B1, B2 and B3 are elements of the input 2-by-2 upper (lower) triangular matrix B. πŸŽ€
  • CSU β€” is DOUBLE PRECISION. 🫢
  • SNU β€” is COMPLEX*16. The desired unitary matrix U. πŸ‘‘
  • CSV β€” is DOUBLE PRECISION. 🌈
  • SNV β€” is COMPLEX*16. The desired unitary matrix V. πŸ’–
  • CSQ β€” is DOUBLE PRECISION. ⭐
  • SNQ β€” is COMPLEX*16. The desired unitary matrix Q. πŸ¦‹

🫢 Author 🫢

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

Definition at line 156 of file zlags2.f.


⭐ Author ⭐

Generated automatically by Doxygen for LAPACK from the source code. πŸ€–βœ¨

πŸ’Œ cute sign-off: that's the page, bestie β€” from LAPACK Version 3.12.0, source path /home/abui...RC/zlags2.f(3), auto-generated by Doxygen for LAPACK. love that for us, periodt. πŸŽ€πŸ’…
πŸ“¦ where this page comes from