SRC/zungql.f(3)
β¨ SRC/zungql.f β¨
okay bestie, welcome to the glow-up zone π
this is a Library Functions Manual page from LAPACK and honestly? she's an icon. lowkey a whole queen of orthonormal columns. let's get into it π«Ά
πΈ SYNOPSIS πΈ
β¨ Functions/Subroutines β¨
subroutine zungql (m, n, k, a, lda, tau, work, lwork, info)β the one and only ZUNGQL, no cap π
π¦ Function/Subroutine Documentation π¦
π subroutine zungql (integer m, integer n, integer k, complex*16, dimension( lda, * ) a, integer lda, complex*16, dimension( * ) tau, complex*16, dimension( * ) work, integer lwork, integer info)
ZUNGQL β literally her name, she ate π₯
π Purpose:
!>
!> ZUNGQL generates an M-by-N complex matrix Q with orthonormal columns,
!> which is defined as the last N columns of a product of K elementary
!> reflectors of order M
!>
!> Q = H(k) . . . H(2) H(1)
!>
!> as returned by ZGEQLF.
!>
so like, she builds you a matrix Q with orthonormal columns β the last N columns of a product of K elementary reflectors of order M, exactly as ZGEQLF handed them back to you. it's giving assemble-the-queen energy πβ¨
π Parameters π
okay this is the part where you actually pay attention, bestie. every single one matters π
Mβ ngl this one's important:
!> M is INTEGER
!> The number of rows of the matrix Q. M >= 0.
!>
Nβ also important, keep up:
!> N is INTEGER
!> The number of columns of the matrix Q. M >= N >= 0.
!>
Kβ the reflector count, slay:
!> K is INTEGER
!> The number of elementary reflectors whose product defines the
!> matrix Q. N >= K >= 0.
!>
Aβ the main character array:
!> A is COMPLEX*16 array, dimension (LDA,N)
!> On entry, the (n-k+i)-th column must contain the vector which
!> defines the elementary reflector H(i), for i = 1,2,...,k, as
!> returned by ZGEQLF in the last k columns of its array
!> argument A.
!> On exit, the M-by-N matrix Q.
!>
so on entry, that (n-k+i)-th column holds the vector defining the elementary reflector H(i) for i = 1,2,...,k, straight from ZGEQLF's last k columns of its array argument A. on exit? she's the M-by-N matrix Q. transformation, literally π¦
LDAβ the dimension bestie:
!> LDA is INTEGER
!> The first dimension of the array A. LDA >= max(1,M).
!>
TAUβ the scalar factor queen:
!> TAU is COMPLEX*16 array, dimension (K)
!> TAU(i) must contain the scalar factor of the elementary
!> reflector H(i), as returned by ZGEQLF.
!>
WORKβ the workspace:
!> WORK is COMPLEX*16 array, dimension (MAX(1,LWORK))
!> On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
!>
LWORKβ okay this one has a whole monologue:
!> LWORK is INTEGER
!> The dimension of the array WORK. LWORK >= max(1,N).
!> For optimum performance LWORK >= N*NB, where NB is the
!> optimal blocksize.
!>
!> If LWORK = -1, then a workspace query is assumed; the routine
!> only calculates the optimal size of the WORK array, returns
!> this value as the first entry of the WORK array, and no error
!> message related to LWORK is issued by XERBLA.
!>
π heads up: if you setLWORK = -1, it's a workspace query β she only calculates the optimal size of theWORKarray, returns that value as the first entry ofWORK, andXERBLAstays quiet, no error message aboutLWORKat all. iykyk β¨
INFOβ the vibe check:
!> INFO is INTEGER
!> = 0: successful exit
!> < 0: if INFO = -i, the i-th argument has an illegal value
!>
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 127 of file zungql.f. π
π Author π
Generated automatically by Doxygen for LAPACK from the source code. (yes, the machine wrote it, and she still served π )
mwah, that's the whole page bestie β go forth and generate those orthonormal columns πβ¨
LAPACK Β· Version 3.12.0 Β· SRC/zungql.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