SRC/zunglq.f(3)
β¨ SRC/zunglq.f β¨
okay so this is a page from the Library Functions Manual for LAPACK, and today's main character is zunglq π
buckle up bestie, she's a Fortran subroutine and she's iconic.
π SYNOPSIS π
Functions/Subroutines
subroutine zunglq (m, n, k, a, lda, tau, work, lwork, info)β literally ZUNGLQ, that's her name, no notes π«Ά
πΈ Function/Subroutine Documentation πΈ
subroutine zunglq (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)
ZUNGLQ π (yes the full signature is right up there, we love a thorough girlie)
π¦ Purpose π¦
okay so the way that ZUNGLQ generates an M-by-N complex matrix Q with orthonormal rows β and she defines it as the first M rows of a product of K elementary reflectors of order N, no cap:
Q = H(k)**H . . . H(2)**H H(1)**H
...exactly as returned by ZGELQF. periodt. β¨
π Parameters π
- M β
MisINTEGER. it's the number of rows of the matrix Q.M >= 0. simple as that, bestie. - N β
NisINTEGER. the number of columns of the matrix Q. constraint check:N >= M. π - K β
KisINTEGER. the number of elementary reflectors whose product defines the matrix Q. rules:M >= K >= 0. yes both of those, she's strict π - A β
AisCOMPLEX*16array, dimension(LDA,N).- on entry: the i-th row must contain the vector which defines the elementary reflector
H(i), fori = 1,2,...,k, as returned byZGELQFin the first k rows of its array argumentA. π - on exit: the M-by-N matrix Q. glow-up complete, she ate π
- on entry: the i-th row must contain the vector which defines the elementary reflector
- LDA β
LDAisINTEGER. the first dimension of the arrayA.LDA >= max(1,M). don't skip themax, fr fr. - TAU β
TAUisCOMPLEX*16array, dimension(K).TAU(i)must contain the scalar factor of the elementary reflectorH(i), as returned byZGELQF. she's the supporting cast but she's essential π - WORK β
WORKisCOMPLEX*16array, dimension(MAX(1,LWORK)). on exit, ifINFO = 0,WORK(1)returns the optimalLWORK. cute little bonus info π« - LWORK β
LWORKisINTEGER. the dimension of the arrayWORK.LWORK >= max(1,M). for optimum performanceLWORK >= M*NB, whereNBis the optimal blocksize. highkey she wants room to breathe π€- > β οΈ if
LWORK = -1, then a workspace query is assumed; the routine only calculates the optimal size of theWORKarray, returns this value as the first entry of theWORKarray, and no error message related toLWORKis issued byXERBLA. so like, don't panic when nothing yells at you, that's the whole point π«Ά
- > β οΈ if
- INFO β
INFOisINTEGER:= 0: successful exit; slay π< 0: ifINFO = -i, the i-th argument has an illegal value π rude but valid
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
such a stacked collab, honestly π
Definition at line 126 of file zunglq.f. β¨
πΊ Author πΊ
generated automatically by Doxygen for LAPACK from the source code. the robots did this one, we just added the sparkle π§
π and that's the whole page bestie, no cap. go forth and make your orthonormal rows.
LAPACK β Version 3.12.0 πΈ bye lovie, drink some water, and remember: LWORK >= max(1,M) π«Άπ
π¦ 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