CGELQT(3)
π CGELQT(3) β like, the LAPACK manual page, but make it make sense
okay so this is a page from the Library Functions Manual, and it lives at /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/cgelqt.f (yes the header abbreviates it as /home/abui...RC/cgelqt.f(3), we love a shortcut β¨). She's a Fortran file, she's iconic, let's get into it.
β¨ NAME β¨
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/cgelqt.f β that's the whole name bestie, that's the file, that's her π
π¦ SYNOPSIS π¦
Functions/Subroutines
subroutine CGELQT (m, n, mb, a, lda, t, ldt, work, info)β CGELQT. that's it. that's the function. slay π
πΈ Function/Subroutine Documentation πΈ
subroutine CGELQT (integer m, integer n, integer mb, complex, dimension(
lda, * ) a, integer lda, complex, dimension( ldt, * ) t, integer ldt,
complex, dimension( * ) work, integer info)
CGELQT β¨
π Purpose:
!>
!> CGELQT computes a blocked LQ factorization of a complex M-by-N matrix A
!> using the compact WY representation of Q.
!>
so literally, CGELQT computes a blocked LQ factorization of a complex M-by-N matrix A, using the compact WY representation of Q. that's the whole vibe. no cap. π₯
π Parameters
M
!> M is INTEGER
!> The number of rows of the matrix A. M >= 0.
!>
M is INTEGER, it's the number of rows of the matrix A, and M >= 0. respect the constraint bestie π«Ά
N
!> N is INTEGER
!> The number of columns of the matrix A. N >= 0.
!>
N is INTEGER β number of columns of the matrix A, and N >= 0. same energy, different axis π
MB
!> MB is INTEGER
!> The block size to be used in the blocked QR. MIN(M,N) >= MB >= 1.
!>
MB is INTEGER β the block size used in the blocked QR, with MIN(M,N) >= MB >= 1. (yes it says QR right there in the LQ routine, that's what the original says, i don't make the rules π)
A
!> A is COMPLEX array, dimension (LDA,N)
!> On entry, the M-by-N matrix A.
!> On exit, the elements on and below the diagonal of the array
!> contain the M-by-MIN(M,N) lower trapezoidal matrix L (L is
!> lower triangular if M <= N); the elements above the diagonal
!> are the rows of V.
!>
A is a COMPLEX array, dimension (LDA,N). On entry it's the M-by-N matrix A. On exit the elements on and below the diagonal contain the M-by-MIN(M,N) lower trapezoidal matrix L (which is lower triangular if M <= N), and the elements above the diagonal are the rows of V. glow-up on exit, honestly β¨
LDA
!> LDA is INTEGER
!> The leading dimension of the array A. LDA >= max(1,M).
!>
LDA is INTEGER β leading dimension of the array A, and LDA >= max(1,M). don't forget the max(1,...) or it's over for you π
T
!> T is COMPLEX array, dimension (LDT,MIN(M,N))
!> The upper triangular block reflectors stored in compact form
!> as a sequence of upper triangular blocks. See below
!> for further details.
!>
T is a COMPLEX array, dimension (LDT,MIN(M,N)) β the upper triangular block reflectors, stored in compact form as a sequence of upper triangular blocks. "see below for further details" and yes, we DO go below, keep scrolling π§
LDT
!> LDT is INTEGER
!> The leading dimension of the array T. LDT >= MB.
!>
LDT is INTEGER β the leading dimension of the array T, and LDT >= MB. β
WORK
!> WORK is COMPLEX array, dimension (MB*N)
!>
WORK is a COMPLEX array, dimension (MB*N). she works, that's literally her name π
INFO
!> INFO is INTEGER
!> = 0: successful exit
!> < 0: if INFO = -i, the i-th argument had an illegal value
!>
INFO is INTEGER:
= 0: successful exit, we love a zero π< 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.
the whole squad wrote this, give them their flowers π
π₯ Further Details:
!>
!> The matrix V stores the elementary reflectors H(i) in the i-th row
!> above the diagonal. For example, if M=5 and N=3, the matrix V is
!>
!> V = ( 1 v1 v1 v1 v1 )
!> ( 1 v2 v2 v2 )
!> ( 1 v3 v3 )
!>
!>
!> where the vi's represent the vectors which define H(i), which are returned
!> in the matrix A. The 1's along the diagonal of V are not stored in A.
!> Let K=MIN(M,N). The number of blocks is B = ceiling(K/MB), where each
!> block is of order MB except for the last block, which is of order
!> IB = K - (B-1)*MB. For each of the B blocks, a upper triangular block
!> reflector factor is computed: T1, T2, ..., TB. The MB-by-MB (and IB-by-IB
!> for the last block) T's are stored in the MB-by-K matrix T as
!>
!> T = (T1 T2 ... TB).
!>
okay bestie this is the part you screenshot πΈ β let me walk you through it:
the matrix V stores the elementary reflectors H(i) in the i-th row above the diagonal. for example, if M=5 and N=3, the matrix V is:
V = ( 1 v1 v1 v1 v1 )
( 1 v2 v2 v2 )
( 1 v3 v3 )
where the vi's represent the vectors which define H(i), which are returned in the matrix A. the 1's along the diagonal of V are not stored in A. (not me being obsessed with the fact that the ones are implied π«Ά)
let K=MIN(M,N). the number of blocks is B = ceiling(K/MB), where each block is of order MB except for the last block, which is of order IB = K - (B-1)*MB. for each of the B blocks, an upper triangular block reflector factor is computed: T1, T2, ..., TB. the MB-by-MB (and IB-by-IB for the last block) T's are stored in the MB-by-K matrix T as:
T = (T1 T2 ... TB).
literally the whole system. main character energy π
π Definition
Definition at line 123 of file cgelqt.f. line one-two-three, periodt. β¨
π¦ Author
Generated automatically by Doxygen for LAPACK from the source code. (the robots did this one, not a human, and honestly? they ate π€π)
and that's the page bestie!! every flag, every constraint, every!>comment β all of it, none of it skipped.LAPACK,Version 3.12.0, and this whole glorious thing lives at/home/abui...RC/cgelqt.f(3)β mwah, catch you in the next manpage πΈπ
π¦ 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