SLAGV2(3)
π SLAGV2(3) β bestie, she does 2-by-2 generalized Schur factorization π
okay so first things first: this page lives in the Library Functions Manual, and the file it's documenting is literally right here in all its glory:
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/slagv2.f
that's the whole vibe. LAPACK source, no cap. π
β¨ NAME β¨
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/slagv2.f
(yeah bestie the NAME section is just... the path. it's giving "I don't need a nickname, my full legal name is my brand." π)
π¦ SYNOPSIS π¦
Functions/Subroutines
subroutine SLAGV2 (a, lda, b, ldb, alphar, alphai, beta, csl, snl, csr,
snr)
and what does she do? she computes the Generalized Schur factorization of a real 2-by-2 matrix pencil (A,B) where B is upper triangular. iconic behaviour, honestly. π
πΈ Function/Subroutine Documentation πΈ
β subroutine SLAGV2 β
the full signature, and yes you're reading it right, there's a lot of arguments:
subroutine SLAGV2 (real, dimension( lda, * ) a, integer lda, real,
dimension( ldb, * ) b, integer ldb, real, dimension( 2 ) alphar, real,
dimension( 2 ) alphai, real, dimension( 2 ) beta, real csl, real snl,
real csr, real snr)
SLAGV2 computes the Generalized Schur factorization of a real 2-by-2 matrix pencil (A,B) where B is upper triangular. (yes, we're saying it again, because that's what the page says and she's consistent π)
π― Purpose
literally the whole point of her existence:
!>
!> SLAGV2 computes the Generalized Schur factorization of a real 2-by-2
!> matrix pencil (A,B) where B is upper triangular. This routine
!> computes orthogonal (rotation) matrices given by CSL, SNL and CSR,
!> SNR such that
!>
!> 1) if the pencil (A,B) has two real eigenvalues (include 0/0 or 1/0
!> types), then
!>
!> [ a11 a12 ] := [ CSL SNL ] [ a11 a12 ] [ CSR -SNR ]
!> [ 0 a22 ] [ -SNL CSL ] [ a21 a22 ] [ SNR CSR ]
!>
!> [ b11 b12 ] := [ CSL SNL ] [ b11 b12 ] [ CSR -SNR ]
!> [ 0 b22 ] [ -SNL CSL ] [ 0 b22 ] [ SNR CSR ],
!>
!> 2) if the pencil (A,B) has a pair of complex conjugate eigenvalues,
!> then
!>
!> [ a11 a12 ] := [ CSL SNL ] [ a11 a12 ] [ CSR -SNR ]
!> [ a21 a22 ] [ -SNL CSL ] [ a21 a22 ] [ SNR CSR ]
!>
!> [ b11 0 ] := [ CSL SNL ] [ b11 b12 ] [ CSR -SNR ]
!> [ 0 b22 ] [ -SNL CSL ] [ 0 b22 ] [ SNR CSR ]
!>
!> where b11 >= b22 > 0.
!>
!>
two real eigenvalues? π
complex conjugate pair? π
either way, rotations get applied and everything gets re-triangularized. where b11 >= b22 > 0 β she has order, she has standards.
π Parameters
π A
!> A is REAL array, dimension (LDA, 2)
!> On entry, the 2 x 2 matrix A.
!> On exit, A is overwritten by the ``A-part'' of the
!> generalized Schur form.
!>
so: A comes in as your cute little 2 x 2 matrix, and leaves as the "A-part" of the generalized Schur form. she's a makeover artist, basically. β¨
π LDA
!> LDA is INTEGER
!> THe leading dimension of the array A. LDA >= 2.
!>
(and yes, the original really does capitalize it as THe, we're not fixing her typos, we love her as she is π) β leading dimension of A, and it has to be LDA >= 2.
π B
!> B is REAL array, dimension (LDB, 2)
!> On entry, the upper triangular 2 x 2 matrix B.
!> On exit, B is overwritten by the ``B-part'' of the
!> generalized Schur form.
!>
B arrives upper triangular, 2 x 2, and gets overwritten with the "B-part" of the generalized Schur form. same deal as her sister A. π«Ά
π LDB
!> LDB is INTEGER
!> THe leading dimension of the array B. LDB >= 2.
!>
leading dimension of B, and it needs LDB >= 2. (again with the THe, obsessed with the lowercase energy π)
π ALPHAR
!> ALPHAR is REAL array, dimension (2)
!>
just a real array of dimension (2). no notes. π
π ALPHAI
!> ALPHAI is REAL array, dimension (2)
!>
also a real array of dimension (2). the imaginary half of the eigenvalue story.
π BETA
!> BETA is REAL array, dimension (2)
!> (ALPHAR(k)+i*ALPHAI(k))/BETA(k) are the eigenvalues of the
!> pencil (A,B), k=1,2, i = sqrt(-1). Note that BETA(k) may
!> be zero.
!>
here's the tea β: (ALPHAR(k)+i*ALPHAI(k))/BETA(k) are the eigenvalues of the pencil (A,B), for k=1,2, with i = sqrt(-1). and BETA(k) may be zero β so like, watch out, no dividing blindly. π
π CSL
!> CSL is REAL
!> The cosine of the left rotation matrix.
!>
the cosine of the left rotation matrix. π
π SNL
!> SNL is REAL
!> The sine of the left rotation matrix.
!>
the sine of the left rotation matrix. π¦
π CSR
!> CSR is REAL
!> The cosine of the right rotation matrix.
!>
the cosine of the right rotation matrix. πΈ
π SNR
!> SNR is REAL
!> The sine of the right rotation matrix.
!>
the sine of the right rotation matrix. and that's the full rotation squad: CSL, SNL, CSR, SNR. iykyk. β¨
π Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
the whole academic + lab powerhouse lineup, honestly. main character institutions. ποΈ
π«Ά Contributors:
- Mark Fahey, Department of Mathematics, Univ. of Kentucky, USA
shoutout Mark, fr fr. π
β Definition at line 155 of file slagv2.f.
(line 155 specifically, write that down bestie βοΈ)
π Author (the meta one)
Generated automatically by Doxygen for LAPACK from the source code.
like, she wrote her own biography. queen behaviour. π€π
and that's the page, bestie! π the footer on this one is LAPACK β Version 3.12.0 with the file path /home/abui...RC/slagv2.f(3) at the bottom, so now you know exactly which build you're dealing with. slay, go factor something. π
β¨
π¦ where this page comes from
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms