tpqrt2(3)
🎀 tpqrt2 🎀
bestie, welcome to the tpqrt2 manual page — it’s giving “linear algebra but make it a group chat.” 💅
💖 NAME 💖
tpqrt2 — tpqrt2: QR factor, level 2
✨ SYNOPSIS ✨
Functions
subroutine ctpqrt2 (m, n, l, a, lda, b, ldb, t, ldt, info)—CTPQRT2computes a QR factorization of a real or complex “triangular-pentagonal” matrix, which is composed of a triangular block and a pentagonal block, using the compact WY representation for Q. iconic.subroutine dtpqrt2 (m, n, l, a, lda, b, ldb, t, ldt, info)—DTPQRT2computes a QR factorization of a real or complex “triangular-pentagonal” matrix, which is composed of a triangular block and a pentagonal block, using the compact WY representation for Q. slay.subroutine stpqrt2 (m, n, l, a, lda, b, ldb, t, ldt, info)—STPQRT2computes a QR factorization of a real or complex “triangular-pentagonal” matrix, which is composed of a triangular block and a pentagonal block, using the compact WY representation for Q. periodt.subroutine ztpqrt2 (m, n, l, a, lda, b, ldb, t, ldt, info)—ZTPQRT2computes a QR factorization of a real or complex “triangular-pentagonal” matrix, which is composed of a triangular block and a pentagonal block, using the compact WY representation for Q. no cap.
🌸 Detailed Description 🌸
This is the “Detailed Description” section, bestie — it’s literally just vibes here in the original, and the real function tea starts in Function Documentation right below. 🫶
🦋 Function Documentation 🦋
🧚 ctpqrt2
subroutine ctpqrt2 (integer m, integer n, integer l, complex, dimension(
lda, * ) a, integer lda, complex, dimension( ldb, * ) b, integer ldb,
complex, dimension( ldt, * ) t, integer ldt, integer info)
CTPQRT2 computes a QR factorization of a real or complex “triangular-pentagonal” matrix, which is composed of a triangular block and a pentagonal block, using the compact WY representation for Q. 💖
Purpose
!>
!> CTPQRT2 computes a QR factorization of a complex
!> matrix C, which is composed of a triangular block A and pentagonal block B,
!> using the compact WY representation for Q.
!>
Parameters
M
!> M is INTEGER
!> The total number of rows of the matrix B.
!> M >= 0.
!>
N
!> N is INTEGER
!> The number of columns of the matrix B, and the order of
!> the triangular matrix A.
!> N >= 0.
!>
L
!> L is INTEGER
!> The number of rows of the upper trapezoidal part of B.
!> MIN(M,N) >= L >= 0. See Further Details.
!>
A
!> A is COMPLEX array, dimension (LDA,N)
!> On entry, the upper triangular N-by-N matrix A.
!> On exit, the elements on and above the diagonal of the array
!> contain the upper triangular matrix R.
!>
LDA
!> LDA is INTEGER
!> The leading dimension of the array A. LDA >= max(1,N).
!>
B
!> B is COMPLEX array, dimension (LDB,N)
!> On entry, the pentagonal M-by-N matrix B. The first M-L rows
!> are rectangular, and the last L rows are upper trapezoidal.
!> On exit, B contains the pentagonal matrix V. See Further Details.
!>
LDB
!> LDB is INTEGER
!> The leading dimension of the array B. LDB >= max(1,M).
!>
T
!> T is COMPLEX array, dimension (LDT,N)
!> The N-by-N upper triangular factor T of the block reflector.
!> See Further Details.
!>
LDT
!> 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
!>
Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Further Details
!>
!> The input matrix C is a (N+M)-by-N matrix
!>
!> C = [ A ]
!> [ B ]
!>
!> where A is an upper triangular N-by-N matrix, and B is M-by-N pentagonal
!> matrix consisting of a (M-L)-by-N rectangular matrix B1 on top of a L-by-N
!> upper trapezoidal matrix B2:
!>
!> B = [ B1 ] <- (M-L)-by-N rectangular
!> [ B2 ] <- L-by-N upper trapezoidal.
!>
!> The upper trapezoidal matrix B2 consists of the first L rows of a
!> N-by-N upper triangular matrix, where 0 <= L <= MIN(M,N). If L=0,
!> B is rectangular M-by-N; if M=L=N, B is upper triangular.
!>
!> The matrix W stores the elementary reflectors H(i) in the i-th column
!> below the diagonal (of A) in the (N+M)-by-N input matrix C
!>
!> C = [ A ] <- upper triangular N-by-N
!> [ B ] <- M-by-N pentagonal
!>
!> so that W can be represented as
!>
!> W = [ I ] <- identity, N-by-N
!> [ V ] <- M-by-N, same form as B.
!>
!> Thus, all of information needed for W is contained on exit in B, which
!> we call V above. Note that V has the same form as B; that is,
!>
!> V = [ V1 ] <- (M-L)-by-N rectangular
!> [ V2 ] <- L-by-N upper trapezoidal.
!>
!> The columns of V represent the vectors which define the H(i)'s.
!> The (M+N)-by-(M+N) block reflector H is then given by
!>
!> H = I - W * T * W**H
!>
!> where W**H is the conjugate transpose of W and T is the upper triangular
!> factor of the block reflector.
!>
Definition at line 172 of file ctpqrt2.f.
🧚 dtpqrt2
subroutine dtpqrt2 (integer m, integer n, integer l, double precision,
dimension( lda, * ) a, integer lda, double precision, dimension( ldb, *
) b, integer ldb, double precision, dimension( ldt, * ) t, integer ldt,
integer info)
DTPQRT2 computes a QR factorization of a real or complex “triangular-pentagonal” matrix, which is composed of a triangular block and a pentagonal block, using the compact WY representation for Q. 💫
Purpose
!>
!> DTPQRT2 computes a QR factorization of a real
!> matrix C, which is composed of a triangular block A and pentagonal block B,
!> using the compact WY representation for Q.
!>
Parameters
M
!> M is INTEGER
!> The total number of rows of the matrix B.
!> M >= 0.
!>
N
!> N is INTEGER
!> The number of columns of the matrix B, and the order of
!> the triangular matrix A.
!> N >= 0.
!>
L
!> L is INTEGER
!> The number of rows of the upper trapezoidal part of B.
!> MIN(M,N) >= L >= 0. See Further Details.
!>
A
!> A is DOUBLE PRECISION array, dimension (LDA,N)
!> On entry, the upper triangular N-by-N matrix A.
!> On exit, the elements on and above the diagonal of the array
!> contain the upper triangular matrix R.
!>
LDA
!> LDA is INTEGER
!> The leading dimension of the array A. LDA >= max(1,N).
!>
B
!> B is DOUBLE PRECISION array, dimension (LDB,N)
!> On entry, the pentagonal M-by-N matrix B. The first M-L rows
!> are rectangular, and the last L rows are upper trapezoidal.
!> On exit, B contains the pentagonal matrix V. See Further Details.
!>
LDB
!> LDB is INTEGER
!> The leading dimension of the array B. LDB >= max(1,M).
!>
T
!> T is DOUBLE PRECISION array, dimension (LDT,N)
!> The N-by-N upper triangular factor T of the block reflector.
!> See Further Details.
!>
LDT
!> 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
!>
Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Further Details
!>
!> The input matrix C is a (N+M)-by-N matrix
!>
!> C = [ A ]
!> [ B ]
!>
!> where A is an upper triangular N-by-N matrix, and B is M-by-N pentagonal
!> matrix consisting of a (M-L)-by-N rectangular matrix B1 on top of a L-by-N
!> upper trapezoidal matrix B2:
!>
!> B = [ B1 ] <- (M-L)-by-N rectangular
!> [ B2 ] <- L-by-N upper trapezoidal.
!>
!> The upper trapezoidal matrix B2 consists of the first L rows of a
!> N-by-N upper triangular matrix, where 0 <= L <= MIN(M,N). If L=0,
!> B is rectangular M-by-N; if M=L=N, B is upper triangular.
!>
!> The matrix W stores the elementary reflectors H(i) in the i-th column
!> below the diagonal (of A) in the (N+M)-by-N input matrix C
!>
!> C = [ A ] <- upper triangular N-by-N
!> [ B ] <- M-by-N pentagonal
!>
!> so that W can be represented as
!>
!> W = [ I ] <- identity, N-by-N
!> [ V ] <- M-by-N, same form as B.
!>
!> Thus, all of information needed for W is contained on exit in B, which
!> we call V above. Note that V has the same form as B; that is,
!>
!> V = [ V1 ] <- (M-L)-by-N rectangular
!> [ V2 ] <- L-by-N upper trapezoidal.
!>
!> The columns of V represent the vectors which define the H(i)'s.
!> The (M+N)-by-(M+N) block reflector H is then given by
!>
!> H = I - W * T * W**T
!>
!> where W^H is the conjugate transpose of W and T is the upper triangular
!> factor of the block reflector.
!>
Definition at line 172 of file dtpqrt2.f.
🧚 stpqrt2
subroutine stpqrt2 (integer m, integer n, integer l, real, dimension( lda, *
) a, integer lda, real, dimension( ldb, * ) b, integer ldb, real,
dimension( ldt, * ) t, integer ldt, integer info)
STPQRT2 computes a QR factorization of a real or complex “triangular-pentagonal” matrix, which is composed of a triangular block and a pentagonal block, using the compact WY representation for Q. 🍓
Purpose
🌸 Parameters 🌸
okay bestie, these are the inputs — every single one, no skipping 💖
M—INTEGER. it's the total number of rows of the matrixB, and it's gotta satisfyM >= 0. that's the vibe check ✨N—INTEGER. this one is doing double duty: it's the number of columns of the matrixBand the order of the triangular matrixA. requirement:N >= 0.L—INTEGER. the number of rows of the upper trapezoidal part ofB. valid range isMIN(M,N) >= L >= 0. curious about what "trapezoidal" even means here? 👀 peep Further Details, it's all laid out.A—REALarray, dimension(LDA,N). on entry it's the upper triangularN-by-NmatrixA. on exit, the elements on and above the diagonal of the array hold the upper triangular matrixR. glow-up ✨LDA—INTEGER. the leading dimension of the arrayA. needsLDA >= max(1,N).B—REALarray, dimension(LDB,N). on entry it's the pentagonalM-by-NmatrixB— the firstM-Lrows are rectangular and the lastLrows are upper trapezoidal. on exit,Bholds the pentagonal matrixV. 👑 see Further Details for the full tea.LDB—INTEGER. the leading dimension of the arrayB. needsLDB >= max(1,M).T—REALarray, dimension(LDT,N). this is theN-by-Nupper triangular factorTof the block reflector 🫶 see Further Details.LDT—INTEGER. the leading dimension of the arrayT. needsLDT >= max(1,N)(note: no period after this one in the original, and we respect that energy 💅).INFO—INTEGER. the receipts 📜:= 0: successful exit, we ate and left no crumbs 🎀< 0: ifINFO = -i, thei-th argument had an illegal value 😭 (rude, but at least it tells you which one)
🧚 Author 🧚
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
like a whole squad of icons collaborated on this, we love a collab 💜
🦋 Further Details 🦋
okay so this is the part where the shapes actually matter — stay with me, it's lowkey beautiful 🌈
the input matrix C is a (N+M)-by-N matrix:
C = [ A ]
[ B ]
where A is an upper triangular N-by-N matrix, and B is an M-by-N pentagonal matrix made of a (M-L)-by-N rectangular matrix B1 sitting on top of an L-by-N upper trapezoidal matrix B2:
B = [ B1 ] <- (M-L)-by-N rectangular
[ B2 ] <- L-by-N upper trapezoidal.
stacked like a little matrix sandwich, iconic honestly 🥪
the upper trapezoidal matrix B2 is made of the first L rows of an N-by-N upper triangular matrix, where 0 <= L <= MIN(M,N). so: if L=0, then B is just rectangular M-by-N; if M=L=N, then B is upper triangular. shapes shifting like a glow-up montage ✨
the matrix W stores the elementary reflectors H(i) in the i-th column below the diagonal (of A) in the (N+M)-by-N input matrix C:
C = [ A ] <- upper triangular N-by-N
[ B ] <- M-by-N pentagonal
so W can be represented as:
W = [ I ] <- identity, N-by-N
[ V ] <- M-by-N, same form as B.
so literally all the info needed for W is contained on exit in B, which we call V up there. note that V has the same form as B, periodt:
V = [ V1 ] <- (M-L)-by-N rectangular
[ V2 ] <- L-by-N upper trapezoidal.
the columns of V represent the vectors that define the H(i)'s. and the (M+N)-by-(M+N) block reflector H is then given by:
H = I - W * T * W^H
where W^H is the conjugate transpose of W and T is the upper triangular factor of the block reflector 🫶 that's the whole recipe, no cap.
Definition at line 172 of file stpqrt2.f.
⭐ subroutine ztpqrt2 (integer m, integer n, integer l, complex*16, dimension( lda, * ) a, integer lda, complex*16, dimension( ldb, * ) b, integer ldb, complex*16, dimension( ldt, * ) t, integer ldt, integer info) ⭐
subroutine ztpqrt2 (integer m, integer n, integer l, complex*16, dimension(
lda, * ) a, integer lda, complex*16, dimension( ldb, * ) b, integer ldb,
complex*16, dimension( ldt, * ) t, integer ldt, integer info)
ZTPQRT2 computes a QR factorization of a real or complex "triangular-pentagonal" matrix, which is composed of a triangular block and a pentagonal block, using the compact WY representation for Q. yes bestie, you read that right — it works for real or complex here 💅🔥
🌸 Purpose: 🌸
okay so fr fr: ZTPQRT2 computes a QR factorization of a complex matrix C, which is composed of a triangular block A and pentagonal block B, using the compact WY representation for Q. same energy, complex edition 💜
🎀 Parameters 🎀
M—INTEGER. the total number of rows of the matrixB.M >= 0.N—INTEGER. the number of columns of the matrixB, and the order of the triangular matrixA.N >= 0.L—INTEGER. the number of rows of the upper trapezoidal part ofB.MIN(M,N) >= L >= 0. see Further Details 👀A—COMPLEX*16array, dimension(LDA,N). on entry, the upper triangularN-by-NmatrixA. on exit, the elements on and above the diagonal of the array contain the upper triangular matrixR✨LDA—INTEGER. the leading dimension of the arrayA.LDA >= max(1,N).B—COMPLEX*16array, dimension(LDB,N). on entry, the pentagonalM-by-NmatrixB— the firstM-Lrows are rectangular, and the lastLrows are upper trapezoidal. on exit,Bcontains the pentagonal matrixV. see Further Details 🫶LDB—INTEGER. the leading dimension of the arrayB.LDB >= max(1,M).T—COMPLEX*16array, dimension(LDT,N). theN-by-Nupper triangular factorTof the block reflector. see Further Details 👑LDT—INTEGER. the leading dimension of the arrayT.LDT >= max(1,N)(again, no trailing period, we keep it real 💅)INFO—INTEGER. the status report:= 0: successful exit 🎉< 0: ifINFO = -i, thei-th argument had an illegal value 😭
🧚 Author 🧚
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
🦋 Further Details 🦋
same shapes, same slay — the input matrix C is a (N+M)-by-N matrix:
C = [ A ]
[ B ]
where A is an upper triangular N-by-N matrix, and B is an M-by-N pentagonal matrix consisting of a (M-L)-by-N rectangular matrix B1 on top of an L-by-N upper trapezoidal matrix B2:
B = [ B1 ] <- (M-L)-by-N rectangular
[ B2 ] <- L-by-N upper trapezoidal.
the upper trapezoidal matrix B2 consists of the first L rows of an N-by-N upper triangular matrix, where 0 <= L <= MIN(M,N). if L=0, then B is rectangular M-by-N; if M=L=N, B is upper triangular. the glow-up options are endless 🌈
the matrix W stores the elementary reflectors H(i) in the i-th column below the diagonal (of A) in the (N+M)-by-N input matrix C:
C = [ A ] <- upper triangular N-by-N
[ B ] <- M-by-N pentagonal
so that W can be represented as:
W = [ I ] <- identity, N-by-N
[ V ] <- M-by-N, same form as B.
thus, all of information needed for W is contained on exit in B, which we call V above. note that V has the same form as B; that is:
V = [ V1 ] <- (M-L)-by-N rectangular
[ V2 ] <- L-by-N upper trapezoidal.
the columns of V represent the vectors which define the H(i)'s. the (M+N)-by-(M+N) block reflector H is then given by:
H = I - W * T * W**H
where W**H is the conjugate transpose of W and T is the upper triangular factor of the block reflector 💖 (and yes, in the complex case it's written W**H — copy it exactly like that, bestie, don't get cute with it).
Definition at line 172 of file ztpqrt2.f.
ok so quick heads up: this whole page was generated automatically by Doxygen for LAPACK straight from the source code — it's not hand-written, it's ✨machine-made✨, which honestly explains the !> comment markers everywhere 💀
and that's a wrap, bestie 🎀 this gorgeous thing is from LAPACK, Version 3.12.0, and it's the tpqrt2(3) page — go forth and factorize responsibly, you absolute icon 👑💜
📦 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