/home/abui.../sgemqrt.f(3)
π NAME π
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/sgemqrt.f
okay so bestie, that's the whole name β it's literally just the full path to the source file, no cap. This is the manual page for that file, from the LAPACK Library Functions Manual. π
β¨ SYNOPSIS β¨
πΈ Functions/Subroutines
subroutine SGEMQRT (side, trans, m, n, k, nb, v, ldv, t, ldt, c, ldc, work, info)β that's the whole squad of arguments, and yes she's called SGEMQRT π«Ά
π Function/Subroutine Documentation π
π subroutine SGEMQRT
subroutine SGEMQRT (character side, character trans, integer m, integer n,
integer k, integer nb, real, dimension( ldv, * ) v, integer ldv, real,
dimension( ldt, * ) t, integer ldt, real, dimension( ldc, * ) c, integer
ldc, real, dimension( * ) work, integer info)
SGEMQRT. that's her name. iconic. β¨
π¦ Purpose
fr fr here's the tea, straight from the source comment block:
!>
!> SGEMQRT overwrites the general real M-by-N matrix C with
!>
!> SIDE = 'L' SIDE = 'R'
!> TRANS = 'N': Q C C Q
!> TRANS = 'T': Q**T C C Q**T
!>
!> where Q is a real orthogonal matrix defined as the product of K
!> elementary reflectors:
!>
!> Q = H(1) H(2) . . . H(K) = I - V T V**T
!>
!> generated using the compact WY representation as returned by SGEQRT.
!>
!> Q is of order M if SIDE = 'L' and of order N if SIDE = 'R'.
!>
so like, you hand her a matrix C, she hands you back C with Q (or Q**T) multiplied in from whichever side you asked for. main character energy honestly π
π Parameters
SIDEβSIDE is CHARACTER*1, and it picks which side Q comes at you from:= 'L': apply Q or Q**T from the Left;= 'R': apply Q or Q**T from the Right.
TRANSβTRANS is CHARACTER*1, the transpose vibe check:= 'N': No transpose, apply Q;= 'T': Transpose, apply Q**T.
MβM is INTEGER, and it'sThe number of rows of the matrix C. M >= 0.(yes bestie, zero rows is legal, she's not judging π)NβN is INTEGER,The number of columns of the matrix C. N >= 0.KβK is INTEGER,The number of elementary reflectors whose product defines the matrix Q.and the constraints are:- If
SIDE = 'L',M >= K >= 0; - if
SIDE = 'R',N >= K >= 0.
- If
NBβNB is INTEGER,The block size used for the storage of T. K >= NB >= 1.and listen, this is important:This must be the same value of NB used to generate T in SGEQRT.like, matching set only, no substitutions π₯VβV is REAL array, dimension (LDV,K), andThe i-th column must contain the vector which defines the elementary reflector H(i), for i = 1,2,...,k, as returned by SGEQRT in the first K columns of its array argument A.so basically she's reusing the exact columns SGEQRT left behind β¨LDVβLDV is INTEGER,The leading dimension of the array V.and the original says:- If
SIDE = 'L',LDA >= max(1,M); - if
SIDE = 'R',LDA >= max(1,N).
- If
π not me pointing out that the doc saysLDAhere even though we're talking aboutLDVβ that's literally what the manpage says, so I'm keeping it exactly as-is. don't come for me, I don't make the rules.
TβT is REAL array, dimension (LDT,K),The upper triangular factors of the block reflectors as returned by SGEQRT, stored as a NB-by-N matrix.LDTβLDT is INTEGER,The leading dimension of the array T. LDT >= NB.CβC is REAL array, dimension (LDC,N).On entry, the M-by-N matrix C.On exit, C is overwritten by Q C, Q**T C, C Q**T or C Q.so yeah she does NOT preserve your input, she replaces it β glow-up in place, bestie π¦LDCβLDC is INTEGER,The leading dimension of the array C. LDC >= max(1,M).WORKβWORK is REAL array.and the dimension isN*NB if SIDE = 'L', or M*NB if SIDE = 'R'.so size it right or it's giving undefined behaviour πINFOβINFO is INTEGER, the receipts:= 0: successful exit< 0: ifINFO = -i, the i-th argument had an illegal value
π§ Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 166 of file sgemqrt.f. π
β Author (again, but the Doxygen one) β
Generated automatically by Doxygen for LAPACK from the source code. β yeah she's auto-generated, she didn't write her own bio, relatable π
okay that's the whole page, you're welcome, go slay your linear algebra π«Ά
β LAPACK, Version 3.12.0, from /home/abui.../sgemqrt.f(3) β mwah, bye bestie π
β¨
π¦ 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