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

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

✨ ZGEQRT3 ✨

okay so bestie, this is a LAPACK manual page for zgeqrt3.f and I'm about to make it make sense. it's literally giving "recursive QR factorization" energy and I'm obsessed. πŸ’–


✨ NAME ✨

/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/zgeqrt3.f

like, that's the file path bestie, no cap. πŸŽ€


✨ SYNOPSIS ✨

✨ Functions/Subroutines ✨

recursive subroutine ZGEQRT3 (m, n, a, lda, t, ldt, info)

ZGEQRT3 recursively computes a QR factorization of a general real or complex matrix using the compact WY representation of Q. periodt. πŸ’…


✨ Function/Subroutine Documentation ✨

recursive subroutine ZGEQRT3 (integer m, integer n, complex*16, dimension(
    lda, * ) a, integer lda, complex*16, dimension( ldt, * ) t, integer
    ldt, integer info)

ZGEQRT3 recursively computes a QR factorization of a general real or complex matrix using the compact WY representation of Q. yes, I said it twice. it's iconic. 🌟


✨ Purpose ✨

okay so the actual purpose, and it's literally this:

!>
!> ZGEQRT3 recursively computes a QR factorization of a complex M-by-N
!> matrix A, using the compact WY representation of Q.
!>
!> Based on the algorithm of Elmroth and Gustavson,
!> IBM J. Res. Develop. Vol 44 No. 4 July 2000.
!>

so like, we're doing QR factorization but make it recursive, and it's based on Elmroth and Gustavson's algorithm from IBM J. Res. Develop. Vol 44 No. 4 July 2000. iykyk. πŸ”₯


✨ Parameters ✨

  • M β€” M is INTEGER. the number of rows of the matrix A. M >= N. (yes bestie, rows have to be greater than or equal to columns, that's the vibe check πŸ’…)
  • N β€” N is INTEGER. the number of columns of the matrix A. N >= 0. (zero is allowed, she's flexible like that πŸ¦‹)
  • A β€” A is COMPLEX*16 array, dimension (LDA,N). on entry, the complex M-by-N matrix A. on exit, the elements on and above the diagonal contain the N-by-N upper triangular matrix R; the elements below the diagonal are the columns of V. see below for further details. (she's giving transformation, she's giving glow-up ✨)
  • LDA β€” LDA is INTEGER. the leading dimension of the array A. LDA >= max(1,M). (don't skimp on the leading dimension bestie, she needs room to breathe 🌸)
  • T β€” T is COMPLEX*16 array, dimension (LDT,N). the N-by-N upper triangular factor of the block reflector. the elements on and above the diagonal contain the block reflector T; the elements below the diagonal are not used. see below for further details. (upper triangular only, the rest is literally n/a πŸ’€)
  • LDT β€” LDT is INTEGER. the leading dimension of the array T. LDT >= max(1,N). (same energy as LDA but for T, keep up 🫢)
  • INFO β€” INFO is INTEGER. and here's the tea:
    • = 0: successful exit (slay! πŸŽ‰)
    • < 0: if INFO = -i, the i-th argument had an illegal value (not me getting called out on argument i 😭)
bestie if INFO comes back negative it means one of your arguments is giving illegal value energy. check yourself before you wreck yourself. πŸ’€

✨ Author ✨

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

like, the whole academic avengers assembled for this one. πŸ‘‘


✨ Further Details ✨

okay so here's where it gets juicy. the matrix V stores the elementary reflectors H(i) in the i-th column below the diagonal. for example, if M=5 and N=3, the matrix V is literally:

V = (  1       )
    ( v1  1    )
    ( v1 v2  1 )
    ( v1 v2 v3 )
    ( v1 v2 v3 )

where the vi's represent the vectors which define H(i), which are returned in the matrix A. the 1's along the diagonal of V are not stored in A. (not me being extra and storing the ones implicitly πŸ™ˆ)

the block reflector H is then given by:

H = I - V * T * V**H

where V**H is the conjugate transpose of V. (conjugate transpose is her full government name, respect it πŸ’…)

for details of the algorithm, see Elmroth and Gustavson (cited above). like, go read the paper bestie, it's giving academic excellence. πŸ“š


Definition at line 131 of file zgeqrt3.f.


✨ Author ✨

Generated automatically by Doxygen for LAPACK from the source code. (the robots did this, not me, but I'm presenting it with flair βœ¨πŸ€–)


that's literally the whole vibe. this page was auto-magically generated by Doxygen for LAPACK from the source code, so don't come for me if the formatting is a little extra. 😘

~~ LAPACK Version 3.12.0 ~~ Dropped: /home/abui.../zgeqrt3.f(3) ~*~ πŸ’–

πŸ“¦ where this page comes from