ZUNGR2(3)
π¦ ZUNGR2(3) β like, the RQ unitary matrix generator, bestie
okay so first things first: this lil page lives in the Library Functions Manual section, and the file it's yapping about is /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/zungr2.f β yes that's the whole path, no I'm not shortening it, she's iconic like that π
β¨ NAME β¨
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/zungr2.f β that's the file, that's the whole name, we don't do nicknames here π
πΈ SYNOPSIS πΈ
Functions/Subroutines
subroutine ZUNGR2 (m, n, k, a, lda, tau, work, info)
ZUNGR2 generates all or part of the unitary matrix Q from an RQ factorization determined by cgerqf (unblocked algorithm). periodt. π
π Function/Subroutine Documentation π
subroutine ZUNGR2 (integer m, integer n, integer k, complex*16, dimension(
lda, * ) a, integer lda, complex*16, dimension( * ) tau, complex*16,
dimension( * ) work, integer info)
ZUNGR2 generates all or part of the unitary matrix Q from an RQ factorization determined by cgerqf (unblocked algorithm). literally the whole plot of this subroutine, right there π«Ά
π Purpose:
!>
!> ZUNGR2 generates an m by n complex matrix Q with orthonormal rows,
!> which is defined as the last m rows of a product of k elementary
!> reflectors of order n
!>
!> Q = H(1)**H H(2)**H . . . H(k)**H
!>
!> as returned by ZGERQF.
!>
so she builds an m-by-n complex matrix Q, orthonormal rows and all, and Q is defined as the last m rows of a product of k elementary reflectors of order n. slay β¨
π Parameters
Mβ no cap, this one matters:
!> M is INTEGER
!> The number of rows of the matrix Q. M >= 0.
!>
the number of rows of Q. M >= 0. π
Nβ the width queen:
!> N is INTEGER
!> The number of columns of the matrix Q. N >= M.
!>
the number of columns of Q. N >= M. note that, it's N greater than or equal to M, not the other way around π
Kβ the reflector count:
!> K is INTEGER
!> The number of elementary reflectors whose product defines the
!> matrix Q. M >= K >= 0.
!>
the number of elementary reflectors whose product defines Q. M >= K >= 0. yes bestie, sandwiched between M and 0 π¦
Aβ main character energy, honestly:
!> A is COMPLEX*16 array, dimension (LDA,N)
!> On entry, the (m-k+i)-th row must contain the vector which
!> defines the elementary reflector H(i), for i = 1,2,...,k, as
!> returned by ZGERQF in the last k rows of its array argument
!> A.
!> On exit, the m-by-n matrix Q.
!>
COMPLEX*16 array, dimension (LDA,N). on entry, the (m-k+i)-th row has GOT to contain the vector defining the elementary reflector H(i), for i = 1,2,...,k, exactly as ZGERQF returned it in the last k rows of its array argument A. on exit? boom, she's the m-by-n matrix Q now. glow-up π
LDAβ the leading dimension baddie:
!> LDA is INTEGER
!> The first dimension of the array A. LDA >= max(1,M).
!>
INTEGER, the first dimension of the array A. LDA >= max(1,M). don't skip the max(1,M) part, iykyk π₯
TAUβ the scalar factor stash:
!> TAU is COMPLEX*16 array, dimension (K)
!> TAU(i) must contain the scalar factor of the elementary
!> reflector H(i), as returned by ZGERQF.
!>
COMPLEX*16 array, dimension (K). TAU(i) must contain the scalar factor of the elementary reflector H(i), as returned by ZGERQF. π
WORKβ the workspace, she's just vibing:
!> WORK is COMPLEX*16 array, dimension (M)
!>
COMPLEX*16 array, dimension (M). that's it. that's the whole description. sometimes less is more π§
INFOβ the vibe check:
!> INFO is INTEGER
!> = 0: successful exit
!> < 0: if INFO = -i, the i-th argument has an illegal value
!>
INTEGER. = 0: successful exit, we love to see it πΈ. < 0: if INFO = -i, the i-th argument has an illegal value β and you KNOW which one it is because she tells you the index, respectful king π
β Author β
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
all four of them, credited, together, as it should be π
Definition at line 113 of file zungr2.f. π
π Author (yes, again, different author block, don't @ me)
Generated automatically by Doxygen for LAPACK from the source code. she didn't write her own bio, a robot did π€β¨
fr fr though: the array bounds, the dimension declarations, and every >= in here are load-bearing. treat them like the rules of the group chat β break them and it's chaos π
and that's the whole page bestie!! this lil slice of the LAPACK docs is Version 3.12.0, and yes, the footer still points at /home/abui...RC/zungr2.f(3) β same file, same energy, mwah ππ«Ά
π¦ 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