SRC/zgeql2.f(3)

hey bestie, you're looking at SRC/zgeql2.f(3) from the Library Functions Manual πŸ’– buckle up, because this one is literally a LAPACK subroutine page and it's giving β€œmath baddie explains linear algebra.”

🌸 NAME 🌸

SRC/zgeql2.f β€” that's the file, bestie. No cap.

✨ SYNOPSIS ✨

🫢 Functions/Subroutines 🫢

  • subroutine zgeql2 (m, n, a, lda, tau, work, info) β€” ZGEQL2 computes the QL factorization of a general rectangular matrix using an unblocked algorithm. Periodt.

πŸ’« Function/Subroutine Documentation πŸ’«

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

ZGEQL2 computes the QL factorization of a general rectangular matrix using an unblocked algorithm. Yep, that's the whole vibe πŸ’…

🎯 Purpose 🎯

okay so, ZGEQL2 computes a QL factorization of a complex m by n matrix A:

A = Q * L.

That's it. That's the main-character equation ✨

πŸ“ Parameters πŸ“

  • M β€” M is INTEGER. It's the number of rows of the matrix A, and M >= 0. Respect the constraint, bestie 🫢
  • N β€” N is INTEGER. It's the number of columns of the matrix A, and N >= 0. Again: constraint check, slay πŸ’…
  • A β€” A is COMPLEX*16 array, dimension (LDA,N).
    • On entry, it's the m by n matrix A.
    • On exit, if m >= n, the lower triangle of the subarray A(m-n+1:m,1:n) contains the n by n lower triangular matrix L.
    • If m <= n, the elements on and below the (n-m)-th superdiagonal contain the m by n lower trapezoidal matrix L.
    • The remaining elements, with the array TAU, represent the unitary matrix Q as a product of elementary reflectors (see Further Details). It's giving β€œone array, multiple jobs” 😭
  • LDA β€” LDA is INTEGER. It's the leading dimension of the array A, and LDA >= max(1,M). Do not fumble this one, fr fr πŸŽ€
  • TAU β€” TAU is COMPLEX*16 array, dimension (min(M,N)). These are the scalar factors of the elementary reflectors (see Further Details). Tiny array, big role ✨
  • WORK β€” WORK is COMPLEX*16 array, dimension (N). That's the workspace, bestie 🧚
  • INFO β€” INFO is INTEGER.
    • = 0: successful exit. We love a clean exit πŸ‘‘
    • < 0: if INFO = -i, the i-th argument had an illegal value. So if something's wrong, it's snitching by index πŸ’€

πŸ‘‘ Author πŸ‘‘

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

Generated automatically by Doxygen for LAPACK from the source code. The robots wrote this one πŸ€–πŸ’–

πŸ” Further Details πŸ”

The matrix Q is represented as a product of elementary reflectors:

Q = H(k) . . . H(2) H(1), 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(m-k+i+1:m) = 0
  • v(m-k+i) = 1
  • v(1:m-k+i-1) is stored on exit in A(1:m-k+i-1,n-k+i)
  • and tau in TAU(i)

The way that little v vector gets tucked into A? iconic. Obsessed, honestly 🌈


Definition at line 122 of file zgeql2.f.

later, bestie β€” this page is from LAPACK Version 3.12.0, and it's literally the manual page for SRC/zgeql2.f(3) πŸ’…πŸŽ€

πŸ“¦ where this page comes from