ZGEQR2(3)

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

πŸ’… ZGEQR2(3) β€” the glow-up for your complex matrix, bestie

Okay so this is the manual page for ZGEQR2, straight out of the LAPACK source forest at /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/zgeqr2.f. Yes the path is long, yes it's iconic, we move. 🫢


✨ SYNOPSIS ✨

So you call it like this, periodt:

subroutine ZGEQR2 (m, n, a, lda, tau, work, info)

And what does it do? Lowkey the most important thing:

ZGEQR2 computes the QR factorization of a general rectangular matrix using an unblocked algorithm.

That's the whole vibe. Calculator said: factorize. 🧚

🌸 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 πŸŽ€

Bestie, get this: 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.

It's giving decomposition main character energy, fr fr. πŸ”₯


πŸ‘‘ PARAMETERS πŸ‘‘

Every one of them, we don't skip. No gatekeeping here. πŸ’–

  • M β€” M is INTEGER. It's literally the number of rows of the matrix A. Constraint: M >= 0.
  • N β€” N is INTEGER. The number of columns of the matrix A. Constraint: N >= 0.
  • 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 β€” scroll down bestie).
  • LDA β€” LDA is INTEGER. The leading dimension of the array A. Constraint: LDA >= max(1,M).
  • TAU β€” TAU is COMPLEX*16 array, dimension (min(M,N)). The scalar factors of the elementary reflectors (see Further Details).
  • WORK β€” WORK is COMPLEX*16 array, dimension (N). That's it, that's the tweet.
  • INFO β€” INFO is INTEGER.
    • = 0: successful exit, slay ✨
    • < 0: if INFO = -i, the i-th argument had an illegal value. So like, something you passed was sus. πŸ’€

πŸ¦‹ AUTHOR πŸ¦‹

Shoutout to the institutions that made this happen, no cap:

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

🌈 FURTHER DETAILS 🌈

Okay so this is the part where it gets real. Pay attention, iykyk.

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).

Beautiful, iconic, no notes. 🌟


πŸ“ DEFINITION πŸ“

Definition at line 129 of file zgeqr2.f. Yes, we clocked the line number, bestie. πŸ’…


πŸ’œ SIGN-OFF πŸ’œ

This cute little page was generated automatically by Doxygen for LAPACK from the source code. It's LAPACK, Version 3.12.0, dated /home/abui...RC/zgeqr2.f(3). Bye bestie, go factorize something βœ¨πŸ«ΆπŸŽ€

πŸ“¦ where this page comes from