SRC/zgeqr2.f(3)
π NAME
SRC/zgeqr2.f β bestie, this is the file, it's giving "I do one thing and I do it iconically" β¨
β¨ SYNOPSIS
π Functions/Subroutines
subroutine zgeqr2 (m, n, a, lda, tau, work, info)β ZGEQR2 computes the QR factorization of a general rectangular matrix using an unblocked algorithm. No cap, that's the whole vibe π«
π¦ Function/Subroutine Documentation
subroutine zgeqr2 (integer m, integer n, complex*16, dimension( lda, * ) a,
integer lda, complex*16, dimension( * ) tau, complex*16, dimension( * )
work, integer info)
ZGEQR2 computes the QR factorization of a general rectangular matrix using an unblocked algorithm. π«Ά
πΈ Purpose:
!>
!> ZGEQR2 computes a QR factorization of a complex m-by-n matrix A:
!>
!> A = Q * ( R ),
!> ( 0 )
!>
!> where:
!>
!> Q is a m-by-m orthogonal matrix;
!> R is an upper-triangular n-by-n matrix;
!> 0 is a (m-n)-by-n zero matrix, if m > n.
!>
!>
Like, it literally takes your matrix and splits it into Q and R. The math is mathing π₯
π Parameters
M
!> M is INTEGER
!> The number of rows of the matrix A. M >= 0.
!>
How many rows A has. It's M >= 0 β so zero rows is legal, don't @ me π
N
!> N is INTEGER
!> The number of columns of the matrix A. N >= 0.
!>
How many columns A has. Again, N >= 0. Slay π
A
!> A is COMPLEX*16 array, dimension (LDA,N)
!> On entry, the m by n matrix A.
!> On exit, the elements on and above the diagonal of the array
!> contain the min(m,n) by n upper trapezoidal matrix R (R is
!> upper triangular if m >= n); the elements below the diagonal,
!> with the array TAU, represent the unitary matrix Q as a
!> product of elementary reflectors (see Further Details).
!>
Okay so on entry this is just your matrix A β on exit it's a whole glow-up β¨ The diagonal-and-above part becomes the min(m,n) by n upper trapezoidal matrix R (and R is upper triangular if m >= n). Everything below the diagonal is not junk β combined with TAU, it's secretly holding the unitary matrix Q as a product of elementary reflectors. See Further Details, iykyk π
LDA
!> LDA is INTEGER
!> The leading dimension of the array A. LDA >= max(1,M).
!>
The leading dimension of the array A, and it must satisfy LDA >= max(1,M). Not a suggestion, bestie π¨
TAU
!> TAU is COMPLEX*16 array, dimension (min(M,N))
!> The scalar factors of the elementary reflectors (see Further
!> Details).
!>
The scalar factors of the elementary reflectors, sized (min(M,N)). Little scalars, big job π
WORK
!> WORK is COMPLEX*16 array, dimension (N)
!>
Scratch space, dimension (N). It's the backstage crew of this routine π
INFO
!> INFO is INTEGER
!> = 0: successful exit
!> < 0: if INFO = -i, the i-th argument had an illegal value
!>
The vibe check at the end: = 0 means successful exit π and < 0 means if INFO = -i, the i-th argument had an illegal value π
π§ Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Four institutions, one iconique subroutine π
π Further Details:
!>
!> The matrix Q is represented as a product of elementary reflectors
!>
!> Q = H(1) H(2) . . . H(k), where k = min(m,n).
!>
!> Each H(i) has the form
!>
!> H(i) = I - tau * v * v**H
!>
!> where tau is a complex scalar, and v is a complex vector with
!> v(1:i-1) = 0 and v(i) = 1; v(i+1:m) is stored on exit in A(i+1:m,i),
!> and tau in TAU(i).
!>
So Q is a product of elementary reflectors, Q = H(1) H(2) . . . H(k) where k = min(m,n), and each H(i) has the form H(i) = I - tau * v * v**H. Here tau is a complex scalar and v is a complex vector with v(1:i-1) = 0 and v(i) = 1; v(i+1:m) is stored on exit in A(i+1:m,i), and tau in TAU(i). Literally storing lore in the lower triangle πβ¨
Definition at line 129 of file zgeqr2.f. Main character energy at line 129, fr fr π₯
β Author
Generated automatically by Doxygen for LAPACK from the source code. (Yes the robots wrote this part, and honestly? They ate π€π )
And that's the whole page bestie! This was LAPACK, Version 3.12.0, live from SRC/zgeqr2.f(3). Go factor something gorgeous πβ¨π¦π
π¦ 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