SRC/dlags2.f(3)
π SRC/dlags2.f β the dlags2 era π
okay so bestie, this is a page from the LAPACK library manual (the SRC/dlags2.f corner of it), and it's literally all about one little subroutine that does big main-character math. no cap, let's get into it π
β¨ NAME β¨
SRC/dlags2.f β the source file itself, bestie. that's the name. it's giving "file name energy" π
πΈ SYNOPSIS πΈ
Functions/Subroutines
subroutine dlags2 (upper, a1, a2, a3, b1, b2, b3, csu, snu, csv, snv, csq, snq)β DLAGS2 computes 2-by-2 orthogonal matrices U, V, and Q, and applies them to matrices A and B such that the rows of the transformed A and B are parallel. that's the whole vibe π₯
π Function/Subroutine Documentation π
π«Ά subroutine dlags2 (logical upper, double precision a1, double precision a2, double precision a3, double precision b1, double precision b2, double precision b3, double precision csu, double precision snu, double precision csv, double precision snv, double precision csq, double precision snq)
DLAGS2 computes 2-by-2 orthogonal matrices U, V, and Q, and applies them to matrices A and B such that the rows of the transformed A and B are parallel. yes queen, parallel rows, that's the goal β¨
π Purpose:
!>
!> DLAGS2 computes 2-by-2 orthogonal matrices U, V and Q, such
!> that if ( UPPER ) then
!>
!> U**T *A*Q = U**T *( A1 A2 )*Q = ( x 0 )
!> ( 0 A3 ) ( x x )
!> and
!> V**T*B*Q = V**T *( B1 B2 )*Q = ( x 0 )
!> ( 0 B3 ) ( x x )
!>
!> or if ( .NOT.UPPER ) then
!>
!> U**T *A*Q = U**T *( A1 0 )*Q = ( x x )
!> ( A2 A3 ) ( 0 x )
!> and
!> V**T*B*Q = V**T*( B1 0 )*Q = ( x x )
!> ( B2 B3 ) ( 0 x )
!>
!> The rows of the transformed A and B are parallel, where
!>
!> U = ( CSU SNU ), V = ( CSV SNV ), Q = ( CSQ SNQ )
!> ( -SNU CSU ) ( -SNV CSV ) ( -SNQ CSQ )
!>
!> Z**T denotes the transpose of Z.
!>
!>
the way those matrices line up π it's honestly so satisfying. and yes, Z**T denotes the transpose of Z β keep that in your notes, bestie π¦
π Parameters
UPPERβUPPER is LOGICAL. it tells you which triangle situation you're in:= .TRUE.means the input matrices A and B are upper triangular, and= .FALSE.means the input matrices A and B are lower triangular. pick your fighter πA1βA1 is DOUBLE PRECISION. that's it, that's the whole description πA2βA2 is DOUBLE PRECISION. same energy β¨A3βA3 is DOUBLE PRECISION. and the tea is: on entry, A1, A2 and A3 are elements of the input 2-by-2 upper (lower) triangular matrix A. so these three are a package deal πB1βB1 is DOUBLE PRECISION. iconic, brief, to the point πΈB2βB2 is DOUBLE PRECISION. yep π«ΆB3βB3 is DOUBLE PRECISION. and: on entry, B1, B2 and B3 are elements of the input 2-by-2 upper (lower) triangular matrix B. matching set with A, lowkey cute π₯CSUβCSU is DOUBLE PRECISION. short and sweet πSNUβSNU is DOUBLE PRECISION. the desired orthogonal matrix U. she's the moment πCSVβCSV is DOUBLE PRECISION. (not a spreadsheet, bestie, do not try to open it) βSNVβSNV is DOUBLE PRECISION. the desired orthogonal matrix V. serving looks πCSQβCSQ is DOUBLE PRECISION. tiny but mighty πSNQβSNQ is DOUBLE PRECISION. the desired orthogonal matrix Q. the final boss of the trio π§
π Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
shoutout to the whole squad, fr fr π«Ά
Definition at line 150 of file dlags2.f. β yes, exact line, we don't round in this house π
β Author β
Generated automatically by Doxygen for LAPACK from the source code. so it wasn't even hand-written, the robots did it for us π
and that's the whole page, bestie!! π this was LAPACK, Version 3.12.0, dated SRC/dlags2.f(3) β mwah, slay, periodt πβ¨π
π¦ where this page comes from
- arch rolling: lapack-doc 3.12.1-2 Β· custom
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms