SRC/cgemqrt.f(3)
β¨ SRC/cgemqrt.f β CGEMQRT β¨
okay bestie, buckle up π
this is a LAPACK Library Functions Manual situation, and the function is literally called cgemqrt. it's giving "math girlie does linear algebra" and honestly? we're obsessed. let's get into it π«Ά
πΈ SYNOPSIS πΈ
Functions/Subroutines
subroutine cgemqrt (side, trans, m, n, k, nb, v, ldv, t, ldt, c, ldc, work, info)
CGEMQRT β she's the main character of this whole page, no cap π₯
π Function/Subroutine Documentation π
subroutine cgemqrt (character side, character trans, integer m, integer n,
integer k, integer nb, complex, dimension( ldv, * ) v, integer ldv,
complex, dimension( ldt, * ) t, integer ldt, complex, dimension( ldc, *
) c, integer ldc, complex, dimension( * ) work, integer info)
CGEMQRT π
π Purpose π
CGEMQRT overwrites the general complex M-by-N matrix C with
SIDE = 'L' SIDE = 'R'
TRANS = 'N': Q C C Q
TRANS = 'C': Q**H C C Q**H
where Q is a complex orthogonal matrix defined as the product of K elementary reflectors:
Q = H(1) H(2) . . . H(K) = I - V T V**H
generated using the compact WY representation as returned by CGEQRT.
Q is of order M if SIDE = 'L' and of order N if SIDE = 'R'.
π Parameters π
SIDEβSIDE is CHARACTER*1πΈ= 'L': apply Q or Q**H from the Left;= 'R': apply Q or Q**H from the Right.
TRANSβTRANS is CHARACTER*1β¨= 'N': No transpose, apply Q;= 'C': Conjugate transpose, apply Q**H.
MβM is INTEGER, and it's literally the number of rows of the matrix C.M >= 0. periodt πNβN is INTEGER, the number of columns of the matrix C.N >= 0. slay.KβK is INTEGER, the number of elementary reflectors whose product defines the matrix Q. π¦- 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. no cap, this must be the same value of NB used to generate T in CGEQRT. don't fumble that bestie πVβV is COMPLEX array, dimension (LDV,K)π The i-th column must contain the vector which defines the elementary reflector H(i), for i = 1,2,...,k, as returned by CGEQRT in the first K columns of its array argument A.LDVβLDV is INTEGER, the leading dimension of the array V. π- If
SIDE = 'L',LDA >= max(1,M); - if
SIDE = 'R',LDA >= max(1,N).
- If
TβT is COMPLEX array, dimension (LDT,K)π The upper triangular factors of the block reflectors as returned by CGEQRT, stored as a NB-by-N matrix.LDTβLDT is INTEGER, the leading dimension of the array T.LDT >= NB. π§CβC is COMPLEX array, dimension (LDC,N)π- On entry, the M-by-N matrix C.
- On exit, C is overwritten by Q C, Q**H C, C Q**H or C Q.
LDCβLDC is INTEGER, the leading dimension of the array C.LDC >= max(1,M). βWORKβWORK is COMPLEX array. The dimension of WORK isN*NBifSIDE = 'L', orM*NBifSIDE = 'R'. get you a work array that can do both π«ΆINFOβINFO is INTEGERπ₯= 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 π¦
Definition at line 166 of file cgemqrt.f.
π« Author π«
Generated automatically by Doxygen for LAPACK from the source code.
okay that's the whole page bestie, you ate that ππ
and btw this iconic little document is from LAPACK, Version 3.12.0 β like, the source code era, fr fr. love that for us πππ
π¦ 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