/home/abui.../zgeqrt3.f(3)
β¨ 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βMisINTEGER. the number of rows of the matrixA.M >= N. (yes bestie, rows have to be greater than or equal to columns, that's the vibe check π )NβNisINTEGER. the number of columns of the matrixA.N >= 0. (zero is allowed, she's flexible like that π¦)AβAisCOMPLEX*16 array, dimension (LDA,N). on entry, the complex M-by-N matrixA. on exit, the elements on and above the diagonal contain the N-by-N upper triangular matrixR; the elements below the diagonal are the columns ofV. see below for further details. (she's giving transformation, she's giving glow-up β¨)LDAβLDAisINTEGER. the leading dimension of the arrayA.LDA >= max(1,M). (don't skimp on the leading dimension bestie, she needs room to breathe πΈ)TβTisCOMPLEX*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 reflectorT; the elements below the diagonal are not used. see below for further details. (upper triangular only, the rest is literally n/a π)LDTβLDTisINTEGER. the leading dimension of the arrayT.LDT >= max(1,N). (same energy as LDA but for T, keep up π«Ά)INFOβINFOisINTEGER. and here's the tea:= 0: successful exit (slay! π)< 0: ifINFO = -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
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms