geqrt3(3)
π geqrt3(3) β the QR glow-up, recursive panel edition β¨
okay bestie, sit down, because geqrt3(3) is about to become your new hyperfixation. this is a whole family of routines (cgeqrt3, dgeqrt3, sgeqrt3, zgeqrt3) that recursively compute a QR factorization using the compact WY representation of Q. yes the whole squad is here. it's giving linear algebra but make it fabulous. π
π NAME π
geqrt3 β geqrt3: QR factor, with T, recursive panel. that's the whole name, no notes, periodt. π«Ά
β¨ SYNOPSIS β¨
πΈ Functions πΈ
recursive subroutine cgeqrt3 (m, n, a, lda, t, ldt, info)β CGEQRT3 recursively computes a QR factorization of a general real or complex matrix using the compact WY representation of Q.recursive subroutine dgeqrt3 (m, n, a, lda, t, ldt, info)β DGEQRT3 recursively computes a QR factorization of a general real or complex matrix using the compact WY representation of Q.recursive subroutine sgeqrt3 (m, n, a, lda, t, ldt, info)β SGEQRT3 recursively computes a QR factorization of a general real or complex matrix using the compact WY representation of Q.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.
π¦ Detailed Description π¦
it's the details, babe. the detailed description lives down below in the Function Documentation section where each of the four subroutines gets its own little main-character moment. keep scrolling, i promise it's worth it. π
π Function Documentation π
π recursive subroutine cgeqrt3 (integer m, integer n, complex, dimension( lda, * ) a, integer lda, complex, dimension( ldt, * ) t, integer ldt, integer info)
recursive subroutine cgeqrt3 (integer m, integer n, complex, dimension( lda, * ) a, integer lda, complex, dimension( ldt, * ) t, integer ldt, integer info)
CGEQRT3 recursively computes a QR factorization of a general real or complex matrix using the compact WY representation of Q. literally that's the whole vibe check and it passes. π₯
π Purpose
CGEQRT3 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 it's a complex M-by-N matrix A getting QR-factored recursively, compact WY representation of Q, and the algorithm is straight from Elmroth and Gustavson, IBM J. Res. Develop. Vol 44 No. 4 July 2000. cite your sources bestie, we love an academic icon. π
π Parameters
M
M is INTEGER The number of rows of the matrix A. M >= N.
M is INTEGER and it's the number of rows of the matrix A. constraint, bestie: M >= N. π«Ά
N
N is INTEGER The number of columns of the matrix A. N >= 0.
N is INTEGER and it's the number of columns of the matrix A. and N >= 0, so zero columns is lowkey allowed. π
A
A is COMPLEX 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.
A is a COMPLEX array, dimension (LDA,N). on entry it's 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, and the elements below the diagonal are the columns of V. glow-up in place, no cap. see below for further details. π
LDA
LDA is INTEGER The leading dimension of the array A. LDA >= max(1,M).
LDA is INTEGER, the leading dimension of the array A. rule: LDA >= max(1,M). π§
T
T is COMPLEX 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.
T is a COMPLEX array, dimension (LDT,N). it's the N-by-N upper triangular factor of the block reflector. elements on and above the diagonal contain the block reflector T; elements below the diagonal are not used β they're just there existing, like a background character. see below for further details. β¨
LDT
LDT is INTEGER The leading dimension of the array T. LDT >= max(1,N).
LDT is INTEGER, the leading dimension of the array T. rule: LDT >= max(1,N). π
INFO
INFO is INTEGER = 0: successful exit < 0: if INFO = -i, the i-th argument had an illegal value
INFO is INTEGER. = 0 means successful exit (slay π). < 0 means if INFO = -i, the i-th argument had an illegal value β so it's snitching on which argument was the problem. iconic behaviour tbh.
πΈ Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
the whole academic friend group showed up to take credit. we respect it. π«‘
π¦ Further Details:
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 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. The block reflector H is then given by H = I - V * T * VH where VH is the conjugate transpose of V. For details of the algorithm, see Elmroth and Gustavson (cited above).
so V is the matrix that stores the elementary reflectors H(i) in the i-th column below the diagonal. example time, bestie: if M=5 and N=3, the matrix V is
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 β they're too iconic to be stored, apparently. π the block reflector H is then given by
H = I - V * T * V**H
where V**H is the conjugate transpose of V. and for details of the algorithm, see Elmroth and Gustavson (cited above). iykyk. π
Definition at line 131 of file cgeqrt3.f.
π recursive subroutine dgeqrt3 (integer m, integer n, double precision, dimension( lda, * ) a, integer lda, double precision, dimension( ldt, * ) t, integer ldt, integer info)
recursive subroutine dgeqrt3 (integer m, integer n, double precision, dimension( lda, * ) a, integer lda, double precision, dimension( ldt, * ) t, integer ldt, integer info)
DGEQRT3 recursively computes a QR factorization of a general real or complex matrix using the compact WY representation of Q. same energy, double precision edition. π
π Purpose
DGEQRT3 recursively computes a QR factorization of a real 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.
DGEQRT3 recursively computes a QR factorization of a real M-by-N matrix A, using the compact WY representation of Q. same source: Elmroth and Gustavson, IBM J. Res. Develop. Vol 44 No. 4 July 2000. consistency queen. π
π Parameters
M
M is INTEGER The number of rows of the matrix A. M >= N.
M is INTEGER, number of rows of the matrix A. M >= N, no exceptions. π«Ά
N
N is INTEGER The number of columns of the matrix A. N >= 0.
N is INTEGER, number of columns of the matrix A. N >= 0. β¨
A
A is DOUBLE PRECISION array, dimension (LDA,N) On entry, the real 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.
A is a DOUBLE PRECISION array, dimension (LDA,N). on entry it's the real M-by-N matrix A. on exit, elements on and above the diagonal hold the N-by-N upper triangular matrix R; elements below the diagonal are the columns of V. see below for further details. π
LDA
LDA is INTEGER The leading dimension of the array A. LDA >= max(1,M).
LDA is INTEGER, the leading dimension of the array A. LDA >= max(1,M). π
T
T is DOUBLE PRECISION 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.
T is a DOUBLE PRECISION array, dimension (LDT,N), the N-by-N upper triangular factor of the block reflector. on and above the diagonal: block reflector T. below the diagonal: not used, don't even look at it. see below for further details. π¦
LDT
LDT is INTEGER The leading dimension of the array T. LDT >= max(1,N).
LDT is INTEGER, the leading dimension of the array T. LDT >= max(1,N). π
INFO
INFO is INTEGER = 0: successful exit < 0: if INFO = -i, the i-th argument had an illegal value
INFO is INTEGER. = 0: successful exit, we cheer. π < 0: if INFO = -i, the i-th argument had an illegal value. it's telling on the culprit, respectfully. π
πΈ Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
same iconic author lineup. π«‘
π¦ Further Details:
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 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. The block reflector H is then given by H = I - V * T * VT where VT is the transpose of V. For details of the algorithm, see Elmroth and Gustavson (cited above).
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
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. the block reflector H is then given by
H = I - V * T * V**T
where V**T is the transpose of V β real edition, so it's plain transpose, not conjugate. no conjugation here bestie, that's a complex-girl thing. π
and for details of the algorithm, see Elmroth and Gustavson (cited above).
Definition at line 131 of file dgeqrt3.f.
π recursive subroutine sgeqrt3 (integer m, integer n, real, dimension( lda, * ) a, integer lda, real, dimension( ldt, * ) t, integer ldt, integer info)
recursive subroutine sgeqrt3 (integer m, integer n, real, dimension( lda, * ) a, integer lda, real, dimension( ldt, * ) t, integer ldt, integer info)
SGEQRT3 recursively computes a QR factorization of a general real or complex matrix using the compact WY representation of Q. single precision, single-handedly serving looks. π₯
π Purpose
SGEQRT3 recursively computes a QR factorization of a real 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.
SGEQRT3 recursively computes a QR factorization of a real M-by-N matrix A, using the compact WY representation of Q. built on Elmroth and Gustavson, IBM J. Res. Develop. Vol 44 No. 4 July 2000. the receipts are right there. π§Ύ
π Parameters
M
M is INTEGER The number of rows of the matrix A. M >= N.
M is INTEGER, the number of rows of the matrix A. M >= N. π«Ά
N
N is INTEGER The number of columns of the matrix A. N >= 0.
N is INTEGER, the number of columns of the matrix A. N >= 0. β¨
A
A is REAL array, dimension (LDA,N) On entry, the real 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.
A is a REAL array, dimension (LDA,N). on entry, the real M-by-N matrix A. on exit, elements on and above the diagonal contain the N-by-N upper triangular matrix R; elements below the diagonal are the columns of V. see below for further details, obviously. π
LDA
LDA is INTEGER The leading dimension of the array A. LDA >= max(1,M).
LDA is INTEGER, the leading dimension of the array A. LDA >= max(1,M). π
T
T is REAL 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.
T is a REAL array, dimension (LDT,N), the N-by-N upper triangular factor of the block reflector. elements on and above the diagonal contain block reflector T; below the diagonal: not used. it's giving "we don't talk about that". π
LDT
LDT is INTEGER The leading dimension of the array T. LDT >= max(1,N).
LDT is INTEGER, the leading dimension of the array T. LDT >= max(1,N). π
INFO
INFO is INTEGER = 0: successful exit < 0: if INFO = -i, the i-th argument had an illegal value
INFO is INTEGER. = 0: successful exit. π < 0: if INFO = -i, the i-th argument had an illegal value. snitch mode activated. π
πΈ Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
same four, same energy. π«‘
π¦ Further Details:
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 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. The block reflector H is then given by H = I - V * T * VT where VT is the transpose of V. For details of the algorithm, see Elmroth and Gustavson (cited above).
V stores the elementary reflectors H(i) in the i-th column below the diagonal. if M=5 and N=3, then V is
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. the block reflector H is then given by
H = I - V * T * V**T
where V**T is the transpose of V. and for details of the algorithm, see Elmroth and Gustavson (cited above). π
Definition at line 131 of file sgeqrt3.f.
π recursive subroutine zgeqrt3 (integer m, integer n, complex*16, dimension( lda, * ) a, integer lda, complex*16, dimension( ldt, * ) t, integer ldt, integer info)
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. double complex has entered the chat and she is thriving. ππ
π Purpose
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.
ZGEQRT3 recursively computes a QR factorization of a complex M-by-N matrix A, using the compact WY representation of Q. and yes, once again, based on Elmroth and Gustavson, IBM J. Res. Develop. Vol 44 No. 4 July 2000. the citation is basically part of the outfit at this point. πβ¨
π Parameters
M
M is INTEGER The number of rows of the matrix A. M >= N.
M is INTEGER, the number of rows of the matrix A. and M >= N, as always. π«Ά
N
stay tuned bestie, there's more coming β part 2 has the rest of the receipts π
Nβ it's anINTEGER, bestie, and it's literally just the number of columns of the matrix A. Rule:N >= 0. That's it, that's the whole vibe. β¨Aβ a big juicyCOMPLEX*16 array, dimension (LDA,N). On entry it's your complexM-by-NmatrixA. On exit? Glow-up era π β everything on and above the diagonal now holds theN-by-Nupper triangular matrixR, and everything below the diagonal is the columns ofV. (Scroll down for the full tea on that, iykyk.)LDAβINTEGER, the leading dimension of the arrayA. Constraint:LDA >= max(1,M). Don't skimp on it, she'll notice. πTβCOMPLEX*16 array, dimension (LDT,N). This is theN-by-Nupper triangular factor of the block reflector, main character energy only. The elements on and above the diagonal contain the block reflectorT; the elements below the diagonal are literally not used, they're just standing there. See below for further details π«ΆLDTβINTEGER, the leading dimension of the arrayT. Constraint:LDT >= max(1,N). Periodt.INFOβINTEGER, the receipts π:= 0β successful exit, we ate, no notes π₯< 0β ifINFO = -i, then the i-th argument had an illegal value. Not cute. Fix it. π
πΈ Author πΈ
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
π¦ Further Details: π¦
Okay so here's the part where it gets good. π§ 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:
V = ( 1 )
( v1 1 )
( v1 v2 1 )
( v1 v2 v3 )
( v1 v2 v3 )
where the vi's represent the vectors which define H(i) β and those are returned in the matrix A. Note that the 1's along the diagonal of V are not stored in A. Sneaky little icons. π
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 the moment, fr fr. β
For details of the algorithm, see Elmroth and Gustavson (cited above). Go read it, it's giving academic icon behavior πβ¨
Definition at line 131 of file zgeqrt3.f.
π Author π
Generated automatically by Doxygen for LAPACK from the source code.
That's the whole page bestie, we made it ππ This lil' beauty is LAPACK Version 3.12.0, the geqrt3(3) page β go forth and factorize responsibly! π¦ππ
π¦ where this page comes from
- arch rolling: lapack-doc 3.12.1-2 Β· custom
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms