gemlqt(3)
π gemlqt(3) π
okay bestie, welcome to gemlqt(3) β yes, that's the page name, it's a Library Functions Manual situation, and it's literally four subroutines in a trench coat. the whole vibe is: "multiply by Q from gelqt" β¨
β¨ NAME β¨
gemlqt β gemlqt: multiply by Q from gelqt π
π¦ SYNOPSIS π¦
π Functions
here's the whole friend group, all four of them take the exact same argument list and only the types change. iconique π
subroutine cgemlqt (side, trans, m, n, k, mb, v, ldv, t, ldt, c, ldc,
work, info)
CGEMLQT πΈ
subroutine dgemlqt (side, trans, m, n, k, mb, v, ldv, t, ldt, c, ldc,
work, info)
DGEMLQT πΈ
subroutine sgemlqt (side, trans, m, n, k, mb, v, ldv, t, ldt, c, ldc,
work, info)
SGEMLQT πΈ
subroutine zgemlqt (side, trans, m, n, k, mb, v, ldv, t, ldt, c, ldc,
work, info)
ZGEMLQT πΈ
π« DETAILED DESCRIPTION π«
okay so this is where the full breakdown lives β every single function gets its own little spotlight down below π and yes, we're going to go through all of them, no skipping, that's the rules π«Ά
π₯ FUNCTION DOCUMENTATION π₯
π cgemlqt π
subroutine cgemlqt (character side, character trans, integer m, integer n,
integer k, integer mb, complex, dimension( ldv, * ) v, integer ldv,
complex, dimension( ldt, * ) t, integer ldt, complex, dimension( ldc, *
) c, integer ldc, complex, dimension( * ) work, integer info)
CGEMLQT β¨
π Purpose
bestie, CGEMLQT 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 unitary 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 CGELQT. π¦
and where's Q from? Q is of order M if SIDE = 'L' and of order N if SIDE = 'R'. periodt π
πΈ Parameters
SIDEβ isCHARACTER*1= 'L': apply Q or Q**H from the Left;= 'R': apply Q or Q**H from the Right.
TRANSβ isCHARACTER*1= 'N': No transpose, apply Q;= 'C': Conjugate transpose, apply Q**H.
Mβ isINTEGER. The number of rows of the matrix C.M >= 0.Nβ isINTEGER. The number of columns of the matrix C.N >= 0.Kβ isINTEGER. The number of elementary reflectors whose product defines the matrix Q.- If
SIDE = 'L',M >= K >= 0; - if
SIDE = 'R',N >= K >= 0.
- If
MBβ isINTEGER. The block size used for the storage of T.K >= MB >= 1. This must be the same value of MB used to generate T inCGELQTπVβ isCOMPLEXarray, dimension
(LDV,M) if SIDE = 'L',
(LDV,N) if SIDE = 'R'
The i-th row must contain the vector which defines the elementary reflector H(i), for i = 1,2,...,k, as returned by CGELQT in the first K rows of its array argument A.
LDVβ isINTEGER. The leading dimension of the array V.LDV >= max(1,K).Tβ isCOMPLEXarray, dimension(LDT,K). The upper triangular factors of the block reflectors as returned byCGELQT, stored as a MB-by-K matrix.LDTβ isINTEGER. The leading dimension of the array T.LDT >= MB.Cβ isCOMPLEXarray, dimension(LDC,N). On entry, the M-by-N matrix C. On exit, C is overwritten by Q C, QH C, C QH or C Q. π₯LDCβ isINTEGER. The leading dimension of the array C.LDC >= max(1,M).WORKβ isCOMPLEXarray. The dimension of WORK isN*MBifSIDE = 'L', orM*MBifSIDE = 'R'.INFOβ isINTEGER= 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
Definition at line 151 of file cgemlqt.f.
π dgemlqt π
subroutine dgemlqt (character side, character trans, integer m, integer n,
integer k, integer mb, 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)
DGEMLQT β¨
π Purpose
now the real one β DGEMLQT 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 DGELQT. π¦
Q is of order M if SIDE = 'L' and of order N if SIDE = 'R'. π
πΈ Parameters
SIDEβ isCHARACTER*1= 'L': apply Q or Q**T from the Left;= 'R': apply Q or Q**T from the Right.
TRANSβ isCHARACTER*1= 'N': No transpose, apply Q;= 'C': Transpose, apply Q*T. *(yep,'C'β that's literally what the docs say bestie, iykyk π)
Mβ isINTEGER. The number of rows of the matrix C.M >= 0.Nβ isINTEGER. The number of columns of the matrix C.N >= 0.Kβ isINTEGER. The number of elementary reflectors whose product defines the matrix Q.- If
SIDE = 'L',M >= K >= 0; - if
SIDE = 'R',N >= K >= 0.
- If
MBβ isINTEGER. The block size used for the storage of T.K >= MB >= 1. This must be the same value of MB used to generate T inDGELQT.Vβ isDOUBLE PRECISIONarray, dimension
(LDV,M) if SIDE = 'L',
(LDV,N) if SIDE = 'R'
The i-th row must contain the vector which defines the elementary reflector H(i), for i = 1,2,...,k, as returned by DGELQT in the first K rows of its array argument A.
LDVβ isINTEGER. The leading dimension of the array V.LDV >= max(1,K).Tβ isDOUBLE PRECISIONarray, dimension(LDT,K). The upper triangular factors of the block reflectors as returned byDGELQT, stored as a MB-by-K matrix.LDTβ isINTEGER. The leading dimension of the array T.LDT >= MB.Cβ isDOUBLE PRECISIONarray, dimension(LDC,N). On entry, the M-by-N matrix C. On exit, C is overwritten by Q C, QT C, C QT or C Q. π₯LDCβ isINTEGER. The leading dimension of the array C.LDC >= max(1,M).WORKβ isDOUBLE PRECISIONarray. The dimension of WORK isN*MBifSIDE = 'L', orM*MBifSIDE = 'R'.INFOβ isINTEGER= 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
Definition at line 166 of file dgemlqt.f.
π sgemlqt π
subroutine sgemlqt (character side, character trans, integer m, integer n,
integer k, integer mb, real, dimension( ldv, * ) v, integer ldv, real,
dimension( ldt, * ) t, integer ldt, real, dimension( ldc, * ) c, integer
ldc, real, dimension( * ) work, integer info)
SGEMLQT β¨
π Purpose
same energy, single precision β SGEMLQT 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 SGELQT. π¦
Q is of order M if SIDE = 'L' and of order N if SIDE = 'R'. π
πΈ Parameters
SIDEβ isCHARACTER*1= 'L': apply Q or Q**T from the Left;= 'R': apply Q or Q**T from the Right.
TRANSβ isCHARACTER*1= 'N': No transpose, apply Q;= 'C': Transpose, apply Q*T. *(again with the'C', bestie β that's what the page says, no cap π)
Mβ isINTEGER. The number of rows of the matrix C.M >= 0.Nβ isINTEGER. The number of columns of the matrix C.N >= 0.Kβ isINTEGER. The number of elementary reflectors whose product defines the matrix Q.- If
SIDE = 'L',M >= K >= 0; - if
SIDE = 'R',N >= K >= 0.
- If
MBβ isINTEGER. The block size used for the storage of T.K >= MB >= 1. This must be the same value of MB used to generate T inSGELQT.Vβ isREALarray, dimension
(LDV,M) if SIDE = 'L',
(LDV,N) if SIDE = 'R'
The i-th row must contain the vector which defines the elementary reflector H(i), for i = 1,2,...,k, as returned by SGELQT in the first K rows of its array argument A.
LDVβ isINTEGER. The leading dimension of the array V.LDV >= max(1,K).
and T is literally the very next thing β part 2 is gonna catch you up on that one, don't go anywhere π«Άπ
back to sgemlqt β here are the rest of its parameters, bestie π
TβTisREAL array, dimension (LDT,K)β the upper triangular factors of the block reflectors as returned bySGELQT, stored as aMB-by-Kmatrix. πLDTβLDTisINTEGERβ the leading dimension of the arrayT.LDT >= MB. β¨CβCisREAL array, dimension (LDC,N)β on entry, theM-by-NmatrixC. On exit,Cis overwritten byQ C,Q**T C,C Q**TorC Q. π₯LDCβLDCisINTEGERβ the leading dimension of the arrayC.LDC >= max(1,M). πΈWORKβWORKisREAL array. The dimension ofWORKisN*MBifSIDE = 'L', orM*MBifSIDE = 'R'. πINFOβINFOisINTEGERβ= 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 151 of file sgemlqt.f.
π subroutine zgemlqt π
subroutine zgemlqt (character side, character trans, integer m, integer n,
integer k, integer mb, 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)
ZGEMLQT
Purpose
ZGEMLQT 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 unitary 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 ZGELQT.
Q is of order M if SIDE = 'L' and of order N if SIDE = 'R'. π
Parameters
SIDEβSIDEisCHARACTER*1β= 'L': applyQorQ**Hfrom the Left;= 'R': applyQorQ**Hfrom the Right. πTRANSβTRANSisCHARACTER*1β= 'N': No transpose, applyQ;= 'C': Conjugate transpose, applyQ**H. πMβMisINTEGERβ the number of rows of the matrixC.M >= 0. πΈNβNisINTEGERβ the number of columns of the matrixC.N >= 0. π«KβKisINTEGERβ the number of elementary reflectors whose product defines the matrixQ. IfSIDE = 'L',M >= K >= 0; ifSIDE = 'R',N >= K >= 0. πMBβMBisINTEGERβ the block size used for the storage ofT.K >= MB >= 1. This must be the same value ofMBused to generateTinZGELQT. π¦VβVisCOMPLEX*16 array, dimension (LDV,M) if SIDE = 'L', (LDV,N) if SIDE = 'R'β thei-th row must contain the vector which defines the elementary reflectorH(i), fori = 1,2,...,k, as returned byZGELQTin the firstKrows of its array argumentA. πLDVβLDVisINTEGERβ the leading dimension of the arrayV.LDV >= max(1,K). β¨TβTisCOMPLEX*16 array, dimension (LDT,K)β the upper triangular factors of the block reflectors as returned byZGELQT, stored as aMB-by-Kmatrix. πLDTβLDTisINTEGERβ the leading dimension of the arrayT.LDT >= MB. π₯CβCisCOMPLEX*16 array, dimension (LDC,N)β on entry, theM-by-NmatrixC. On exit,Cis overwritten byQ C,Q**H C,C Q**HorC Q. πΈLDCβLDCisINTEGERβ the leading dimension of the arrayC.LDC >= max(1,M). πWORKβWORKisCOMPLEX*16 array. The dimension ofWORKisN*MBifSIDE = 'L', orM*MBifSIDE = 'R'. π«ΆINFOβINFOisINTEGERβ= 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 zgemlqt.f.
π Author π
Generated automatically by Doxygen for LAPACK from the source code.
and that's a wrap on gemlqt(3)! This page is LAPACK Version 3.12.0, gemlqt(3), and it was auto-generated by Doxygen for LAPACK from the source code. Slay bestie, go apply those reflectors π
β¨π
π¦ 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