/home/abui.../dgeqr2p.f(3)
πΈ DGEQR2P β girl, let me tell you about QR factorization πΈ
okay so real talk, this is a page from the Library Functions Manual for /home/abui.../dgeqr2p.f(3) and honestly? it's giving legendary LAPACK energy. buckle up bestie π
β¨ NAME β¨
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/dgeqr2p.f
like yes, that's the whole name, it's a whole path, she's built different π don't @ me, that's literally what the manpage says.
π¦ SYNOPSIS π¦
Functions/Subroutines
subroutine DGEQR2P (m, n, a, lda, tau, work, info)β DGEQR2P computes the QR factorization of a general rectangular matrix with non-negative diagonal elements using an unblocked algorithm. no cap, that's the whole vibe π
π Function/Subroutine Documentation π
subroutine DGEQR2P (integer m, integer n, double precision, dimension( lda, * ) a, integer lda, double precision, dimension( * ) tau, double precision, dimension( * ) work, integer info)
DGEQR2P computes the QR factorization of a general rectangular matrix with non-negative diagonal elements using an unblocked algorithm. icon behavior, fr fr β¨
π Purpose π
!>
!> DGEQR2P computes a QR factorization of a real 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 with nonnegative diagonal
!> entries;
!> 0 is a (m-n)-by-n zero matrix, if m > n.
!>
!>
so basically she takes your sweet little m-by-n matrix A and splits it into Q (orthogonal, m-by-m, main character) times that stacked R / 0 situation β where R is upper-triangular n-by-n with nonnegative diagonal entries, and the 0 is your (m-n)-by-n zero block that only shows up when m > n. slay π«Ά
π Parameters π
Mβ!> M is INTEGER/ the number of rows of the matrixA.M >= 0. yes bestie, non-negative, we don't do negativity here πNβ!> N is INTEGER/ the number of columns of the matrixA.N >= 0. same energy, keep it>= 0πAβ!> A is DOUBLE PRECISION array, dimension (LDA,N)- on entry: the
mbynmatrixA. she's fresh, she's untouched πΈ - on exit: the elements on and above the diagonal of the array contain the
min(m,n)bynupper trapezoidal matrixR(andRis upper triangular ifm >= n, iykyk). the diagonal entries ofRare nonnegative; the elements below the diagonal, together with the arrayTAU, represent the orthogonal matrixQas a product of elementary reflectors (peep Further Details below π). it's giving glow-up makeover π₯
- on entry: the
LDAβ!> LDA is INTEGER/ the leading dimension of the arrayA.LDA >= max(1,M). don't skip this one, she will notice πTAUβ!> TAU is DOUBLE PRECISION array, dimension (min(M,N))/ the scalar factors of the elementary reflectors (again, see Further Details π)WORKβ!> WORK is DOUBLE PRECISION array, dimension (N)/ that's it, that's the workspace, she's just doing her job πINFOβ!> INFO is INTEGER= 0: successful exit β¨ we love a happy ending< 0: ifINFO = -i, the i-th argument had an illegal value π someone did NOT read the constraints
π§ Author π§
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
the literal dream team, four institutions deep, no cap π
β 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**T
!>
!> where tau is a real scalar, and v is a real 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).
!>
!> See Lapack Working Note 203 for details
!>
so Q is a whole conga line of elementary reflectors H(1) H(2) . . . H(k) where k = min(m,n) β and every single H(i) is literally I - tau * v * v**T. tau is a real scalar, v is a real vector where v(1:i-1) = 0 and v(i) = 1 (so fancy), and on exit v(i+1:m) goes and lives in A(i+1:m,i) while tau chills in TAU(i). if you want the full lore, see Lapack Working Note 203 for details ππ
β οΈ heads up bestie:Agets overwritten. on entry she's your matrix, on exit she'sRplus the reflector vectors below the diagonal. if you needed the originalA, sorry babe, she's gone π
Definition at line 133 of file dgeqr2p.f. π
πΈ Author (the other one) πΈ
Generated automatically by Doxygen for LAPACK from the source code. she's not typed by hand, she's born this way, machine-made and still flawless π
mwah π that's the whole page, babes β LAPACK, Version 3.12.0, dated /home/abui.../dgeqr2p.f(3). go forth and factorize responsibly πβ¨π¦
π¦ 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