/home/abui.../zgeqr2p.f(3)

πŸ“¦ version 3.12.0, in opensuse-leap 16.0

πŸŽ€ NAME πŸŽ€

ok so bestie, this whole page is about one file: /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/zgeqr2p.f β€” that's it, that's the name, she's an absolute icon of a path and i'm lowkey obsessed with how long it is πŸ’…


✨ SYNOPSIS ✨

Functions/Subroutines

  • subroutine ZGEQR2P (m, n, a, lda, tau, work, info) β€” ZGEQR2P computes the QR factorization of a general rectangular matrix with non-negative diagonal elements using an unblocked algorithm.

🌸 Function/Subroutine Documentation 🌸

subroutine ZGEQR2P (integer m, integer n, complex*16, dimension( lda, * ) a, integer lda, complex*16, dimension( * ) tau, complex*16, dimension( * ) work, integer info)

ZGEQR2P 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 πŸ’–

Purpose:

!>
!> ZGEQR2P 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 with nonnegative diagonal
!>    entries;
!>    0 is a (m-n)-by-n zero matrix, if m > n.
!>
!>

like literally she factors A into Q times that stacked R-over-0 situation πŸ¦‹


🌈 Parameters

  • M
!>          M is INTEGER
!>          The number of rows of the matrix A.  M >= 0.
!>

the row count bestie. M >= 0, we don't do negative rows here πŸ™ˆ

  • N
!>          N is INTEGER
!>          The number of columns of the matrix A.  N >= 0.
!>

the column count. also N >= 0. rules are rules ✨

  • 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 diagonal entries of R
!>          are real and nonnegative; the elements below the diagonal,
!>          with the array TAU, represent the unitary matrix Q as a
!>          product of elementary reflectors (see Further Details).
!>

ok so she goes in as your plain m-by-n matrix A and comes out completely transformed 😭 on exit, everything on and above the diagonal holds the min(m,n) by n upper trapezoidal matrix R β€” and R is upper triangular if m >= n β€” with diagonal entries that are real and nonnegative. meanwhile the stuff below the diagonal teams up with TAU to represent the unitary matrix Q as a product of elementary reflectors (peep Further Details for the tea) πŸ”₯

  • LDA
!>          LDA is INTEGER
!>          The leading dimension of the array A.  LDA >= max(1,M).
!>

leading dimension of A, and it must satisfy LDA >= max(1,M) β€” the way that max(1,M) is doing the absolute most for the M = 0 case, we stan a defensive queen πŸ‘‘

  • TAU
!>          TAU is COMPLEX*16 array, dimension (min(M,N))
!>          The scalar factors of the elementary reflectors (see Further
!>          Details).
!>

dim min(M,N) and she's holding the scalar factors of the elementary reflectors πŸ’œ

  • WORK
!>          WORK is COMPLEX*16 array, dimension (N)
!>

scratch space, dim (N), she's just here to help 🫢

  • INFO
!>          INFO is INTEGER
!>          = 0: successful exit
!>          < 0: if INFO = -i, the i-th argument had an illegal value
!>

the vibe check πŸ’… = 0 means successful exit (slay), and < 0 means if INFO = -i, the i-th argument had an illegal value β€” so like, go check argument number i, bestie, that's the one that fumbled 😭


πŸ‘‘ Author

  • Univ. of Tennessee
  • Univ. of California Berkeley
  • Univ. of Colorado Denver
  • NAG Ltd.

🧚 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).
!>
!> See Lapack Working Note 203 for details
!>

ok so this is the part where it gets cute β€” Q is a whole product of elementary reflectors, Q = H(1) H(2) . . . H(k) where k = min(m,n), and every H(i) is I - tau * v * v**H. the tau is a complex scalar, v is a complex vector with v(1:i-1) = 0 and v(i) = 1, and on exit v(i+1:m) is chilling in A(i+1:m,i) while tau is chilling in TAU(i). and if you want the full lore, See Lapack Working Note 203 for details πŸ“š


Definition at line 133 of file zgeqr2p.f.


⭐ Author ⭐

Generated automatically by Doxygen for LAPACK from the source code. (the robots did this one, not me, don't come for me πŸ™ˆ)


ok bye bestie, this was LAPACK Version 3.12.0 and the whole thing lives at /home/abui.../zgeqr2p.f(3) β€” go forth and factor your QR, you're gonna ate πŸ’…βœ¨

πŸ“¦ where this page comes from