SRC/cunm2l.f(3)
π NAME π
okay so bestie, this page is SRC/cunm2l.f(3) from the Library Functions Manual, and it is literally all about SRC/cunm2l.f. no cap.
β¨ SYNOPSIS β¨
πΈ Functions/Subroutines πΈ
subroutine cunm2l (side, trans, m, n, k, a, lda, tau, c, ldc, work, info)
CUNM2L multiplies a general matrix by the unitary matrix from a QL factorization determined by cgeqlf (unblocked algorithm). it's giving linear algebra royalty π
π Function/Subroutine Documentation π
subroutine cunm2l (character side, character trans, integer m, integer n, integer k, complex, dimension( lda, * ) a, integer lda, complex, dimension( * ) tau, complex, dimension( ldc, * ) c, integer ldc, complex, dimension( * ) work, integer info)
CUNM2L multiplies a general matrix by the unitary matrix from a QL factorization determined by cgeqlf (unblocked algorithm). yes bestie, it's the same iconic subroutine, now with full signature energy β¨
π Purpose π
CUNM2L overwrites the general complex m-by-n matrix C with:
Q * C if SIDE = 'L' and TRANS = 'N', or
Q**H* C if SIDE = 'L' and TRANS = 'C', or
C * Q if SIDE = 'R' and TRANS = 'N', or
C * Q**H if SIDE = 'R' and TRANS = 'C',
where Q is a complex unitary matrix defined as the product of k elementary reflectors:
Q = H(k) . . . H(2) H(1)
as returned by CGEQLF. Q is of order m if SIDE = 'L' and of order n if SIDE = 'R'. periodt π
π Parameters π
SIDE
SIDE is CHARACTER*1
= 'L': applyQorQ**Hfrom the Left= 'R': applyQorQ**Hfrom the Right
TRANS
TRANS is CHARACTER*1
= 'N': applyQ(No transpose)= 'C': applyQ**H(Conjugate transpose)
M
M is INTEGER
The number of rows of the matrix C. M >= 0. bestie, zero rows is allowed, the math said so π«Ά
N
N is INTEGER
The number of columns of the matrix C. N >= 0. same vibe check: zero is valid β¨
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.
A
A is COMPLEX array, dimension (LDA,K)
The i-th column must contain the vector which defines the elementary reflector H(i), for i = 1,2,...,k, as returned by CGEQLF in the last k columns of its array argument A.
A is modified by the routine but restored on exit. so it's a little chaotic mid-routine, but it comes back home safe π
LDA
LDA is INTEGER
The leading dimension of the array A.
- If
SIDE = 'L',LDA >= max(1,M); - if
SIDE = 'R',LDA >= max(1,N).
TAU
TAU is COMPLEX array, dimension (K)
TAU(i) must contain the scalar factor of the elementary reflector H(i), as returned by CGEQLF.
C
C is COMPLEX array, dimension (LDC,N)
On entry, the m-by-n matrix C.
On exit, C is overwritten by Q*C or Q**H*C or C*Q**H or C*Q. she gets a whole new look, no cap π
LDC
LDC is INTEGER
The leading dimension of the array C. LDC >= max(1,M).
WORK
WORK is COMPLEX array, dimension
(N) if SIDE = 'L',
(M) if SIDE = 'R'
INFO
INFO is INTEGER
= 0: successful exit
< 0: if INFO = -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 157 of file cunm2l.f.
π Author π
Generated automatically by Doxygen for LAPACK from the source code.
xoxo, LAPACK Version 3.12.0 π
β source: SRC/cunm2l.f(3) π«Ά
π¦ 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