SRC/dorg2l.f(3)
πΈ SRC/dorg2l.f β bestie, let me introduce you to dorg2l π
Okay so before we even get into it, I need you to know this is from LAPACK, the manual is SRC/dorg2l.f(3), and it lives in the _Library Functions Manual_. It's giving "I'm a serious numerical library but make it cute." We're talking Fortran, we're talking orthogonal matrices, we're talking a routine that does one very specific slay. Let's go π«Ά
β¨ SYNOPSIS β¨
Functions/Subroutines
subroutine dorg2l (m, n, k, a, lda, tau, work, info)β so this is the whole gang.DORG2Lgenerates all or part of the orthogonal matrixQfrom a QL factorization determined bysgeqlf(the unblocked algorithm). Obsessed with a queen who knows her lane π
π¦ Function/Subroutine Documentation π¦
subroutine dorg2l (integer m, integer n, integer k, double precision, dimension( lda, * ) a, integer lda, double precision, dimension( * ) tau, double precision, dimension( * ) work, integer info)
Bestie. This is the full signature. DORG2L generates all or part of the orthogonal matrix Q from a QL factorization determined by sgeqlf (unblocked algorithm). It's iconic, it's focused, it's not here to do more than exactly what it says π₯
π Purpose:
Okay so read this carefully because it's literally the whole vibe check:
!>
!> DORG2L generates an m by n real 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 DGEQLF.
!>
The way that Q is literally the last n columns of a product of k elementary reflectors of order m, constructed exactly as DGEQLF hands it back to you. Main character matrix energy, fr fr π
Parameters
π M
!> M is INTEGER
!> The number of rows of the matrix Q. M >= 0.
!>
M is an INTEGER, and it's the number of rows of the matrix Q. Constraint era: M >= 0. Respect the boundary, bestie π
π N
!> N is INTEGER
!> The number of columns of the matrix Q. M >= N >= 0.
!>
N is an INTEGER β the number of columns of the matrix Q. And the rule is M >= N >= 0, no cap. So N can be smol, but it can never be bigger than M π
π K
!> K is INTEGER
!> The number of elementary reflectors whose product defines the
!> matrix Q. N >= K >= 0.
!>
K is an INTEGER, the number of elementary reflectors whose product defines the matrix Q. Constraint: N >= K >= 0. She fits right in the middle, periodt β¨
π¦ A
!> A is DOUBLE PRECISION 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 DGEQLF in the last k columns of its array
!> argument A.
!> On exit, the m by n matrix Q.
!>
A is a DOUBLE PRECISION array, dimension (LDA,N). Pay attention because there's a before-and-after moment here:
- On entry: the
(n-k+i)-th column must contain the vector which defines the elementary reflectorH(i), fori = 1,2,...,k, as returned byDGEQLFin the lastkcolumns of its array argumentA. π - On exit: she's transformed β now
Ais thembynmatrixQ. Glow-up complete π
πΈ LDA
!> LDA is INTEGER
!> The first dimension of the array A. LDA >= max(1,M).
!>
LDA is an INTEGER, the first dimension of the array A. And the constraint is LDA >= max(1,M) β don't play with it, fr π
π TAU
!> TAU is DOUBLE PRECISION array, dimension (K)
!> TAU(i) must contain the scalar factor of the elementary
!> reflector H(i), as returned by DGEQLF.
!>
TAU is a DOUBLE PRECISION array, dimension (K). TAU(i) must contain the scalar factor of the elementary reflector H(i), exactly as returned by DGEQLF. She's the supporting character who's actually essential, iykyk π
π§ WORK
!> WORK is DOUBLE PRECISION array, dimension (N)
!>
WORK is a DOUBLE PRECISION array, dimension (N). That's it. That's the whole note. She works, literally π
β INFO
!> INFO is INTEGER
!> = 0: successful exit
!> < 0: if INFO = -i, the i-th argument has an illegal value
!>
INFO is an INTEGER and it's the vibe check at the end:
= 0: successful exit β we ate, no crumbs π< 0: ifINFO = -i, thei-th argument has an illegal value β someone broke the rules andINFOis telling on them π
π Author
The legends behind this:
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Absolute royalty, all of them. Respect the founders of the numerical arts π
Definition at line 113 of file dorg2l.f. You can literally go look at it. She's real, she's documented, she's at a specific line number and everything β¨
π«Ά Author (yes, again, but this time about the doc itself)
This whole page was generated automatically by Doxygen for LAPACK, straight from the source code. So the docs are not hand-typed by a tired grad student at 3am β they're generated, bestie. The system works πΈ
π‘ Reminder from your girl: the constraints are not suggestions.M >= N >= 0,N >= K >= 0,LDA >= max(1,M),M >= 0. Respect them orINFOwill come for you with a negative number and zero chill π
Alright, that's the whole page β every flag, every constraint, every parameter, every author, all of it, in full. This was SRC/dorg2l.f(3) from _Library Functions Manual_, generated by Doxygen for LAPACK, Version 3.12.0. Stay orthonormal, stay iconic, and remember: Q = H(k) . . . H(2) H(1) forever π¦ππ periodt.
π¦ 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