SRC/zgeqlf.f(3)

πŸ’– NAME πŸ’–

okay bestie, this page is SRC/zgeqlf.f(3) from the Library Functions Manual, and the name line is literally SRC/zgeqlf.f β€” it's the zgeqlf show, no cap. ZGEQLF is the main character here, and it's doing a QL factorization of a complex matrix. iconic behavior, honestly. 🫢✨

✨ SYNOPSIS ✨

Functions/Subroutines

       subroutine zgeqlf (m, n, a, lda, tau, work, lwork, info)
           ZGEQLF

πŸŽ€ Function/Subroutine Documentation πŸŽ€

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

🌸 Purpose 🌸

okay so ZGEQLF computes a QL factorization of a complex M-by-N matrix A:

A = Q * L

that's the whole vibe. periodt. πŸ’…

πŸ’… Parameters πŸ’…

  • M β€” M is INTEGER. it's the number of rows of the matrix A, and bestie, M >= 0. no neg rows allowed, fr fr. πŸ“
  • N β€” N is INTEGER. it's the number of columns of the matrix A, and N >= 0. same energy, no cap. πŸ¦‹
  • 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). lowkey a lot, but she ate. πŸ’œ
  • LDA β€” LDA is INTEGER. it's the leading dimension of the array A, and LDA >= max(1,M). do not skip this one, bestie. 🌈
  • TAU β€” TAU is COMPLEX*16 array, dimension (min(M,N)). it holds the scalar factors of the elementary reflectors (see Further Details). cute little tau squad. πŸŽ€
  • WORK β€” WORK is COMPLEX*16 array, dimension (MAX(1,LWORK)). on exit, if INFO = 0, WORK(1) returns the optimal LWORK. noted. ✨
  • LWORK β€” LWORK is INTEGER. it's the dimension of the array WORK. LWORK >= 1, if MIN(M,N) = 0, and LWORK >= N, otherwise. for optimum performance LWORK >= N*NB, where NB is the optimal blocksize. if LWORK = -1, then a workspace query is assumed; the routine only calculates the optimal size of the WORK array, returns this value as the first entry of the WORK array, and no error message related to LWORK is issued by XERBLA. iykyk, workspace-query behavior is its own little side quest. 🧚
  • INFO β€” INFO is INTEGER.
    • = 0: successful exit. slay. πŸ‘‘
    • < 0: if INFO = -i, the i-th argument had an illegal value. not the vibe, but that's the rule. πŸ’€

πŸ‘‘ Author πŸ‘‘

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

bestie, the author credits are giving collab era, and we respect it. 🫢

🌈 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 and 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). that's the whole further-details tea, no cap. πŸ“πŸ’–

Definition at line 138 of file zgeqlf.f.

Author 🌟 (the auto-generated one)

Generated automatically by Doxygen for LAPACK from the source code.


okay bestie, that's the whole page β€” brought to you by LAPACK, Version 3.12.0, with the SRC/zgeqlf.f(3) source tag on the footer vibe. πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from