gemqrt(3)
π gemqrt(3) β multiply by Q from geqrt
This is the gemqrt(3) page from the Library Functions Manual, bestie. We're doing the LAPACK thing where you already have a Q from geqrt and now you need to actually multiply by it. Slay. β¨
πΈ NAME πΈ
gemqrt - gemqrt: multiply by Q from geqrt.
β¨ SYNOPSIS β¨
π§ Functions
- CGEMQRT:
subroutine cgemqrt (side, trans, m, n, k, nb, v, ldv, t, ldt, c, ldc,
work, info)
- DGEMQRT:
subroutine dgemqrt (side, trans, m, n, k, nb, v, ldv, t, ldt, c, ldc,
work, info)
- SGEMQRT:
subroutine sgemqrt (side, trans, m, n, k, nb, v, ldv, t, ldt, c, ldc,
work, info)
- ZGEMQRT:
subroutine zgemqrt (side, trans, m, n, k, nb, v, ldv, t, ldt, c, ldc,
work, info)
π«Ά Detailed Description π«Ά
The actual function docs are below, bestie β this part is just the landing zone. π¦
π Function Documentation π
π subroutine cgemqrt β CGEMQRT
subroutine cgemqrt (character side, character trans, integer m, integer n,
integer k, integer nb, complex, dimension( ldv, * ) v, integer ldv,
complex, dimension( ldt, * ) t, integer ldt, complex, dimension( ldc, *
) c, integer ldc, complex, dimension( * ) work, integer info)
π― Purpose
Okay so CGEMQRT overwrites the general complex M-by-N matrix C with:
SIDE = 'L' SIDE = 'R'
TRANS = 'N': Q C C Q
TRANS = 'C': Q**H C C Q**H
where Q is a complex orthogonal matrix defined as the product of K elementary reflectors:
Q = H(1) H(2) . . . H(K) = I - V T V**H
generated using the compact WY representation as returned by CGEQRT. π«
Q is of order M if SIDE = 'L' and of order N if SIDE = 'R'. Periodt.
π Parameters
SIDEβ direction check:CHARACTER*1.= 'L': applyQorQ**Hfrom the Left;= 'R': applyQorQ**Hfrom the Right. πTRANSβ transpose vibe:CHARACTER*1.= 'N': No transpose, applyQ;= 'C': Conjugate transpose, applyQ**H. β¨MβINTEGER. The number of rows of the matrixC.M >= 0. πNβINTEGER. The number of columns of the matrixC.N >= 0. πΈKβINTEGER. The number of elementary reflectors whose product defines the matrixQ. IfSIDE = 'L',M >= K >= 0; ifSIDE = 'R',N >= K >= 0. πNBβINTEGER. The block size used for the storage ofT.K >= NB >= 1. This must be the same value ofNBused to generateTinCGEQRT. π₯VβCOMPLEX array, dimension (LDV,K). Thei-th column must contain the vector which defines the elementary reflectorH(i), fori = 1,2,...,k, as returned byCGEQRTin the firstKcolumns of its array argumentA. π¦LDVβINTEGER. The leading dimension of the arrayV. IfSIDE = 'L',LDA >= max(1,M); ifSIDE = 'R',LDA >= max(1,N). π«ΆTβCOMPLEX array, dimension (LDT,K). The upper triangular factors of the block reflectors as returned byCGEQRT, stored as aNB-by-Nmatrix. πLDTβINTEGER. The leading dimension of the arrayT.LDT >= NB. πCβCOMPLEX array, dimension (LDC,N). On entry, theM-by-NmatrixC. On exit,Cis overwritten byQ C,Q**H C,C Q**HorC Q. πLDCβINTEGER. The leading dimension of the arrayC.LDC >= max(1,M). πΈWORKβCOMPLEX array. The dimension ofWORKisN*NBifSIDE = 'L', orM*NBifSIDE = 'R'. π§INFOβINTEGER.= 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.
Definition at line 166 of file cgemqrt.f.
π subroutine dgemqrt β DGEMQRT
subroutine dgemqrt (character side, character trans, integer m, integer n,
integer k, integer nb, double precision, dimension( ldv, * ) v, integer
ldv, double precision, dimension( ldt, * ) t, integer ldt, double
precision, dimension( ldc, * ) c, integer ldc, double precision,
dimension( * ) work, integer info)
π― Purpose
DGEMQRT overwrites the general real M-by-N matrix C with:
SIDE = 'L' SIDE = 'R'
TRANS = 'N': Q C C Q
TRANS = 'T': Q**T C C Q**T
where Q is a real orthogonal matrix defined as the product of K elementary reflectors:
Q = H(1) H(2) . . . H(K) = I - V T V**T
generated using the compact WY representation as returned by DGEQRT. π«
Q is of order M if SIDE = 'L' and of order N if SIDE = 'R'. No cap.
π Parameters
SIDEβ which side are we on:CHARACTER*1.= 'L': applyQorQ**Tfrom the Left;= 'R': applyQorQ**Tfrom the Right. πTRANSβ transpose tea:CHARACTER*1.= 'N': No transpose, applyQ;= 'C': Transpose, applyQ**T. β¨MβINTEGER. The number of rows of the matrixC.M >= 0. πNβINTEGER. The number of columns of the matrixC.N >= 0. πΈKβINTEGER. The number of elementary reflectors whose product defines the matrixQ. IfSIDE = 'L',M >= K >= 0; ifSIDE = 'R',N >= K >= 0. πNBβINTEGER. The block size used for the storage ofT.K >= NB >= 1. This must be the same value ofNBused to generateTinDGEQRT. π₯VβDOUBLE PRECISION array, dimension (LDV,K). Thei-th column must contain the vector which defines the elementary reflectorH(i), fori = 1,2,...,k, as returned byDGEQRTin the firstKcolumns of its array argumentA. π¦LDVβINTEGER. The leading dimension of the arrayV. IfSIDE = 'L',LDA >= max(1,M); ifSIDE = 'R',LDA >= max(1,N). π«ΆTβDOUBLE PRECISION array, dimension (LDT,K). The upper triangular factors of the block reflectors as returned byDGEQRT, stored as aNB-by-Nmatrix. πLDTβINTEGER. The leading dimension of the arrayT.LDT >= NB. πCβDOUBLE PRECISION array, dimension (LDC,N). On entry, theM-by-NmatrixC. On exit,Cis overwritten byQ C,Q**T C,C Q**TorC Q. πLDCβINTEGER. The leading dimension of the arrayC.LDC >= max(1,M). πΈWORKβDOUBLE PRECISION array. The dimension ofWORKisN*NBifSIDE = 'L', orM*NBifSIDE = 'R'. π§INFOβINTEGER.= 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.
Definition at line 166 of file dgemqrt.f.
π subroutine sgemqrt β SGEMQRT
subroutine sgemqrt (character side, character trans, integer m, integer n,
integer k, integer nb, real, dimension( ldv, * ) v, integer ldv, real,
dimension( ldt, * ) t, integer ldt, real, dimension( ldc, * ) c, integer
ldc, real, dimension( * ) work, integer info)
π― Purpose
SGEMQRT overwrites the general real M-by-N matrix C with:
SIDE = 'L' SIDE = 'R'
TRANS = 'N': Q C C Q
TRANS = 'T': Q**T C C Q**T
where Q is a real orthogonal matrix defined as the product of K elementary reflectors:
Q = H(1) H(2) . . . H(K) = I - V T V**T
generated using the compact WY representation as returned by SGEQRT. π«
Q is of order M if SIDE = 'L' and of order N if SIDE = 'R'. Iconic.
π Parameters
SIDEβ pick a side:CHARACTER*1.= 'L': applyQorQ**Tfrom the Left;= 'R': applyQorQ**Tfrom the Right. πTRANSβ transpose mode:CHARACTER*1.= 'N': No transpose, applyQ;= 'T': Transpose, applyQ**T. β¨MβINTEGER. The number of rows of the matrixC.M >= 0. πNβINTEGER. The number of columns of the matrixC.N >= 0. πΈKβINTEGER. The number of elementary reflectors whose product defines the matrixQ. IfSIDE = 'L',M >= K >= 0; ifSIDE = 'R',N >= K >= 0. πNBβINTEGER. The block size used for the storage ofT.K >= NB >= 1. This must be the same value ofNBused to generateTinSGEQRT. π₯VβREAL array, dimension (LDV,K). Thei-th column must contain the vector which defines the elementary reflectorH(i), fori = 1,2,...,k, as returned bySGEQRTin the firstKcolumns of its array argumentA. π¦LDVβINTEGER. The leading dimension of the arrayV. IfSIDE = 'L',LDA >= max(1,M); ifSIDE = 'R',LDA >= max(1,N). π«ΆTβREAL array, dimension (LDT,K). The upper triangular factors of the block reflectors as returned bySGEQRT, stored as aNB-by-Nmatrix. πLDTLDT(INTEGER) β the leading dimension of the arrayT, bestie. Rule of the land:LDT >= NB.β¨Cβ REAL array, dimension (LDC,N) π- On entry: the
M-by-NmatrixC. - On exit:
Cgets overwritten byQ C,Q**T C,C Q**TorC Q. Like, it's gone, it's transformed, that's the whole point. π¦
- On entry: the
LDC(INTEGER) β the leading dimension of the arrayC. Constraint:LDC >= max(1,M).No cap.WORKβ REAL array. The dimension ofWORKisN*NBifSIDE = 'L', orM*NBifSIDE = 'R'. It's giving "scratch space with rules", honestly. πINFO(INTEGER) β the vibe check at the end π= 0: successful exit, we ate. π₯< 0: ifINFO = -i, the i-th argument had an illegal value. Somebody passed something cursed, and this is how you find out. π
π Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Definition at line 166 of file sgemqrt.f.
π¦ subroutine zgemqrt (character side, character trans, integer m, integer n, integer k, integer nb, complex*16, dimension( ldv, * ) v, integer ldv, complex*16, dimension( ldt, * ) t, integer ldt, complex*16, dimension( ldc, * ) c, integer ldc, complex*16, dimension( * ) work, integer info)
ZGEMQRT β okay so this is the complex*16 sibling and it is iconic. π
β¨ Purpose:
!>
!> ZGEMQRT overwrites the general complex M-by-N matrix C with
!>
!> SIDE = 'L' SIDE = 'R'
!> TRANS = 'N': Q C C Q
!> TRANS = 'C': Q**H C C Q**H
!>
!> where Q is a complex orthogonal matrix defined as the product of K
!> elementary reflectors:
!>
!> Q = H(1) H(2) . . . H(K) = I - V T V**H
!>
!> generated using the compact WY representation as returned by ZGEQRT.
!>
!> Q is of order M if SIDE = 'L' and of order N if SIDE = 'R'.
!>
So real talk: Q is a complex orthogonal matrix built as the product of K elementary reflectors, and it was generated with the compact WY representation like ZGEQRT returned it. Q is of order M if SIDE = 'L' and of order N if SIDE = 'R'. That's literally the whole deal. π«Ά
πΈ Parameters
SIDEβ CHARACTER1*= 'L': applyQorQ**Hfrom the Left;= 'R': applyQorQ**Hfrom the Right.
TRANSβ CHARACTER1*= 'N': No transpose, applyQ;= 'C': Conjugate transpose, applyQ**H.
M(INTEGER) β the number of rows of the matrixC. Constraint:M >= 0.N(INTEGER) β the number of columns of the matrixC. Constraint:N >= 0.K(INTEGER) β the number of elementary reflectors whose product defines the matrixQ. π- If
SIDE = 'L',M >= K >= 0; - if
SIDE = 'R',N >= K >= 0.
- If
NB(INTEGER) β the block size used for the storage ofT. Constraint:K >= NB >= 1.β οΈ Real one here: this must be the same value of NB used to generateTinZGEQRT. Not a similar value. The same one. Don't fumble this. πVβ COMPLEX16 array, dimension (LDV,K)* β the i-th column must contain the vector which defines the elementary reflectorH(i), fori = 1,2,...,k, as returned byZGEQRTin the firstKcolumns of its array argumentA. That's the tea. πLDV(INTEGER) β the leading dimension of the arrayV.- If
SIDE = 'L',LDA >= max(1,M); - if
SIDE = 'R',LDA >= max(1,N).
- If
Tβ COMPLEX16 array, dimension (LDT,K)* β the upper triangular factors of the block reflectors as returned byZGEQRT, stored as aNB-by-Nmatrix. πLDT(INTEGER) β the leading dimension of the arrayT. Constraint:LDT >= NB.Cβ COMPLEX16 array, dimension (LDC,N)* π- On entry: the
M-by-NmatrixC. - On exit:
Cis overwritten byQ C,Q**H C,C Q**HorC Q.
- On entry: the
LDC(INTEGER) β the leading dimension of the arrayC. Constraint:LDC >= max(1,M).WORKβ COMPLEX16 array*. The dimension ofWORKisN*NBifSIDE = 'L', orM*NBifSIDE = 'R'. Same deal as before, just complex now. β¨INFO(INTEGER) β the final verdict π= 0: successful exit< 0: ifINFO = -i, the i-th argument had an illegal value
π Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Definition at line 166 of file zgemqrt.f.
π Author
Generated automatically by Doxygen for LAPACK from the source code.
And that's the whole page, bestie β every flag, every constraint, every vibe. π§
Okay so the actual footer energy: this is from LAPACK, Version 3.12.0, and the page is gemqrt(3). Generated automatically by Doxygen, so like, no human wrote it and yet it still ate. Slay. πβ¨ periodt.
π¦ 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