SRC/zungl2.f(3)
π SRC/zungl2.f(3) β the library functions manual, but make it make sense
okay so bestie, this is the page for SRC/zungl2.f from the LAPACK manual (Library Functions Manual section 3), and it's literally just about one lil subroutine. let's get into it π
β¨ NAME β¨
SRC/zungl2.f β that's the file, that's the vibe, that's the whole name section, no cap π
πΈ SYNOPSIS πΈ
Functions/Subroutines
subroutine zungl2 (m, n, k, a, lda, tau, work, info)
ZUNGL2 generates all or part of the unitary matrix Q from an LQ factorization determined by cgelqf (unblocked algorithm).
that's the one-line summary and it ate, honestly π
π¦ Function/Subroutine Documentation π¦
β subroutine zungl2
here's the full signature, exactly as it is, no edits, we don't do that here:
subroutine zungl2 (integer m, integer n, integer k, complex*16, dimension( lda, * ) a, integer lda, complex*16, dimension( * ) tau, complex*16, dimension( * ) work, integer info)
ZUNGL2 generates all or part of the unitary matrix Q from an LQ factorization determined by cgelqf (unblocked algorithm).
π Purpose
okay so the whole point, fr fr:
!>
!> ZUNGL2 generates an m-by-n complex matrix Q with orthonormal rows,
!> which is defined as the first m rows of a product of k elementary
!> reflectors of order n
!>
!> Q = H(k)**H . . . H(2)**H H(1)**H
!>
!> as returned by ZGELQF.
!>
so like, Q has orthonormal rows, it's the first m rows of that big product of k elementary reflectors of order n, and you get all of that back from ZGELQF. main character matrix energy, honestly π
β¨
π₯ Parameters
MβMisINTEGER. The number of rows of the matrix Q.M >= 0. (yes bestie, zero is allowed, we love an empty queen π)NβNisINTEGER. The number of columns of the matrix Q.N >= M. (columns gotta be at least as many as rows, no negotiating π«Ά)KβKisINTEGER. The number of elementary reflectors whose product defines the matrix Q.M >= K >= 0. the middle child of the constraints, and it's sandwiched πAβAisCOMPLEX*16 array, 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. β so it goes in as reflector data and comes out as a whole entire Q, glow-up of the century πLDAβLDAisINTEGER. The first dimension of the arrayA.LDA >= max(1,M). don't skip themax(1,...), that 1 is doing important work πTAUβTAUisCOMPLEX*16 array, dimension (K).TAU(i)must contain the scalar factor of the elementary reflector H(i), as returned byZGELQF. she's small but she matters πWORKβWORKisCOMPLEX*16 array, dimension (M). that's it, that's the whole description, scratch space, iconic minimalism β¨INFOβINFOisINTEGER.= 0: successful exit π< 0: ifINFO = -i, the i-th argument has an illegal value π
ngl the INFO rules are the whole mood: exit clean or tell me exactly which argument you're mad about. periodt.
π Author π
the legends who brought you this:
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
four institutions, one subroutine, absolute squad goals π«Ά
Definition at line 112 of file zungl2.f. β yes, line 112, go look, iykyk π
π Author (again, but the meta one) π
Generated automatically by Doxygen for LAPACK from the source code. so nobody hand-wrote this page, a robot did it, and honestly the robot ate π€π
aaaand that's the whole page bestie, every flag, every constraint, every line reference, all of it, untouched π₯
lowkey a reminder: theM >= 0,N >= M,M >= K >= 0, andLDA >= max(1,M)checks are not suggestions β feed this thing a bad argument andINFOwill call you out with a negative index π
sign-off time π this was SRC/zungl2.f(3) from the LAPACK manual, Version 3.12.0 β stay orthonormal, bestie, and may all your rows be unit-length ππ¦πΈ
π¦ 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