ZGEQRF(3)

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

✨ NAME ✨

okay so this is the page for /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/zgeqrf.f β€” it lives in the Library Functions Manual bestie, and it's literally the home of ZGEQRF πŸŽ€


🌸 SYNOPSIS 🌸

Functions/Subroutines

  • subroutine ZGEQRF (m, n, a, lda, tau, work, lwork, info) β€” ZGEQRF πŸ‘‘

πŸ’… Function/Subroutine Documentation πŸ’…

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

ZGEQRF 🫢

Purpose:

!>
!> ZGEQRF 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.
!>
!>

so basically it takes your complex M-by-N matrix A and factorizes it into Q times that stacked (R over 0) situation β€” and yes, if M > N that bottom chunk is a big ol' zero block, no cap πŸ’€

Parameters

  • M β€” M is INTEGER, aka the number of rows of the matrix A. And like, M >= 0. periods.
  • N β€” N is INTEGER, the number of columns of the matrix A. N >= 0 bestie.
  • A β€” A is COMPLEX*16 array, dimension (LDA,N). On entry: it's the M-by-N matrix A. On exit: the elements on and above the diagonal hold the min(M,N)-by-N upper trapezoidal matrix R (and R is upper triangular if m >= n); the elements below the diagonal, together with the array TAU, represent the unitary matrix Q as a product of min(m,n) elementary reflectors (peep the Further Details section, iykyk).
  • LDA β€” LDA is INTEGER, the leading dimension of the array A. LDA >= max(1,M). don't skip this one πŸ™ˆ
  • TAU β€” TAU is COMPLEX*16 array, dimension (min(M,N)). It's the scalar factors of those elementary reflectors (again, Further Details is right there ✨).
  • WORK β€” WORK is COMPLEX*16 array, dimension (MAX(1,LWORK)). On exit, if INFO = 0, then WORK(1) returns the optimal LWORK. cute right πŸŽ€
  • LWORK β€” LWORK is INTEGER, 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. slay πŸ’… 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. iconic behaviour fr fr.
  • INFO β€” INFO is INTEGER
    • = 0: successful exit πŸŽ‰
    • < 0: if INFO = -i, the i-th argument had an illegal value 😭

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

the way that v starts with a whole run of zeros and then a big fat 1 at position i… main character energy honestly πŸ‘‘

Definition at line 145 of file zgeqrf.f 🌈


πŸ¦‹ Author πŸ¦‹

Generated automatically by Doxygen for LAPACK from the source code. πŸ€–βœ¨

ngl bestie, this page was auto-cooked by Doxygen β€” no human wrote this prose, only the vibes πŸ’€

mwah πŸ’‹ that's the whole page β€” brought to you by LAPACK, Version 3.12.0, straight out of /home/abui...RC/zgeqrf.f(3) β€” see u in the next factorization, bestie 🫢

πŸ“¦ where this page comes from