DORM2L(3)
π NAME π
ok so bestie, this page is dorm2l.f(3) and the "name" here is literally just this whole path, no cap:
/home/abuild/rpmbuild/BUILD/lapack-
static-3.12.0-build/lapack-3.12.0/SRC/dorm2l.f
that's it. that's the name. it's giving "my full government name on the school roster" energy π
β¨ SYNOPSIS β¨
π«Ά Functions/Subroutines
subroutine DORM2L (side, trans, m, n, k, a, lda, tau, c, ldc, work, info)β DORM2L multiplies a general matrix by the orthogonal matrix from a QL factorization determined by sgeqlf (unblocked algorithm).
πΈ Function/Subroutine Documentation πΈ
subroutine DORM2L (character side, character trans, integer m, integer n,
integer k, double precision, dimension( lda, * ) a, integer lda, double
precision, dimension( * ) tau, double precision, dimension( ldc, * ) c,
integer ldc, double precision, dimension( * ) work, integer info)
DORM2L multiplies a general matrix by the orthogonal matrix from a QL factorization determined by sgeqlf (unblocked algorithm).
π Purpose:
ok so like, the whole vibe of this routine: it overwrites the general real m by n matrix C withβ¦
Q * C if SIDE = 'L' and TRANS = 'N', or
Q**T * C if SIDE = 'L' and TRANS = 'T', or
C * Q if SIDE = 'R' and TRANS = 'N', or
C * Q**T if SIDE = 'R' and TRANS = 'T',
where Q is a real orthogonal matrix defined as the product of k elementary reflectors π«
Q = H(k) . . . H(2) H(1)
as returned by DGEQLF. Q is of order m if SIDE = 'L' and of order n if SIDE = 'R'. slay.
π Parameters
SIDE
SIDE is CHARACTER*1
= 'L': apply Q or Q**T from the Left
= 'R': apply Q or Q**T from the Right
left or right, bestie β pick your side, it's literally that simple π
TRANS
TRANS is CHARACTER*1
= 'N': apply Q (No transpose)
= 'T': apply Q**T (Transpose)
'N' = no transpose, 'T' = transpose. main character choice fr fr.
M
M is INTEGER
The number of rows of the matrix C. M >= 0.
rows of C, and it has to be M >= 0 okay π«Ά
N
N is INTEGER
The number of columns of the matrix C. N >= 0.
columns of C. N >= 0. periodt.
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.
how many elementary reflectors are multiplying into Q β and yes the bounds flip depending on SIDE, so M >= K >= 0 for 'L' and N >= K >= 0 for 'R' π
A
A is DOUBLE PRECISION 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
DGEQLF in the last k columns of its array argument A.
A is modified by the routine but restored on exit.
the i-th column holds the vector defining H(i), for i = 1,2,...,k, exactly as DGEQLF handed it back in the last k columns of its array argument A. and yes β A is modified by the routine but restored on exit, so she leaves and comes back looking the same π iconic behavior.
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).
leading dimension of A. LDA >= max(1,M) when SIDE = 'L', LDA >= max(1,N) when SIDE = 'R'. don't skip this check, it will absolutely catch you π
TAU
TAU is DOUBLE PRECISION array, dimension (K)
TAU(i) must contain the scalar factor of the elementary
reflector H(i), as returned by DGEQLF.
TAU(i) = the scalar factor of H(i), as returned by DGEQLF. literally just hand it over exactly as you got it π
C
C is DOUBLE PRECISION array, dimension (LDC,N)
On entry, the m by n matrix C.
On exit, C is overwritten by Q*C or Q**T*C or C*Q**T or C*Q.
on entry it's the m by n matrix C. on exit it's been overwritten by Q*C or Q**T*C or C*Q**T or C*Q. she's not coming back the same, and that's the point πβ¨
LDC
LDC is INTEGER
The leading dimension of the array C. LDC >= max(1,M).
leading dimension of C, and it's LDC >= max(1,M). no debate π₯
WORK
WORK is DOUBLE PRECISION array, dimension
(N) if SIDE = 'L',
(M) if SIDE = 'R'
scratch space, and its size flips with SIDE: dimension (N) if SIDE = 'L', dimension (M) if SIDE = 'R'. iykyk π¦
INFO
INFO is INTEGER
= 0: successful exit
< 0: if INFO = -i, the i-th argument had an illegal value
= 0 β we ate, successful exit. < 0 β if INFO = -i, the i-th argument had an illegal value. read the number, go fix that argument, that's the whole detective arc π
π Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 157 of file dorm2l.f.
β Author (the doxygen one) β
Generated automatically by Doxygen for LAPACK from the source code.
and that's the whole page bestie π«Ά the footer tea: this is LAPACK, Version 3.12.0, dated /home/abui...RC/dorm2l.f(3) β go forth and multiply your matrices the correct way ππ§ββοΈ
π¦ 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