unm2r(3)
π NAME π
Library Functions Manual? More like library functions bestie. This is unm2r(3) β unm2r β {un,or}m2r: multiply by Q from geqrf, level 2.
β¨ SYNOPSIS β¨
π«Ά Functions π«Ά
cunm2rβ CUNM2R multiplies a general matrix by the unitary matrix from a QR factorization determined bycgeqrf(unblocked algorithm).
subroutine cunm2r (side, trans, m, n, k, a, lda, tau, c, ldc, work,
info)
dorm2rβ DORM2R multiplies a general matrix by the orthogonal matrix from a QR factorization determined bysgeqrf(unblocked algorithm).
subroutine dorm2r (side, trans, m, n, k, a, lda, tau, c, ldc, work,
info)
sorm2rβ SORM2R multiplies a general matrix by the orthogonal matrix from a QR factorization determined bysgeqrf(unblocked algorithm).
subroutine sorm2r (side, trans, m, n, k, a, lda, tau, c, ldc, work,
info)
zunm2rβ ZUNM2R multiplies a general matrix by the unitary matrix from a QR factorization determined bycgeqrf(unblocked algorithm).
subroutine zunm2r (side, trans, m, n, k, a, lda, tau, c, ldc, work,
info)
π DETAILED DESCRIPTION π
Okay so this is the overview zone β the real function-by-function tea starts right below in Function Documentation. π
π FUNCTION DOCUMENTATION π
π subroutine cunm2r π
subroutine cunm2r (character side, character trans, integer m, integer n,
integer k, complex, dimension( lda, * ) a, integer lda, complex,
dimension( * ) tau, complex, dimension( ldc, * ) c, integer ldc,
complex, dimension( * ) work, integer info)
CUNM2R multiplies a general matrix by the unitary matrix from a QR factorization determined by cgeqrf (unblocked algorithm).
π« Purpose π«
Okay so CUNM2R overwrites the general complex m-by-n matrix C with:
Q * C if SIDE = 'L' and TRANS = 'N', or
Q**H* C if SIDE = 'L' and TRANS = 'C', or
C * Q if SIDE = 'R' and TRANS = 'N', or
C * Q**H if SIDE = 'R' and TRANS = 'C',
where Q is a complex unitary matrix defined as the product of k elementary reflectors:
Q = H(1) H(2) . . . H(k)
as returned by CGEQRF. Q is of order m if SIDE = 'L' and of order n if SIDE = 'R'.
π Parameters π
SIDEβCHARACTER*1.= 'L': applyQorQ**Hfrom the Left;= 'R': applyQorQ**Hfrom the Right.TRANSβCHARACTER*1.= 'N': applyQ(No transpose);= 'C': applyQ**H(Conjugate transpose).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.AβCOMPLEX array, dimension(LDA,K). Thei-th column must contain the vector which defines the elementary reflectorH(i), fori = 1,2,...,k, as returned byCGEQRFin the firstkcolumns of its array argumentA.Ais modified by the routine but restored on exit.LDAβINTEGER. The leading dimension of the arrayA. IfSIDE = 'L',LDA >= max(1,M); ifSIDE = 'R',LDA >= max(1,N).TAUβCOMPLEX array, dimension(K).TAU(i)must contain the scalar factor of the elementary reflectorH(i), as returned byCGEQRF.CβCOMPLEX array, dimension(LDC,N). On entry, them-by-nmatrixC. On exit,Cis overwritten byQ*CorQ**H*CorC*Q**HorC*Q.LDCβINTEGER. The leading dimension of the arrayC.LDC >= max(1,M).WORKβCOMPLEX array, dimension(N)ifSIDE = 'L',(M)ifSIDE = '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 157 of file cunm2r.f.
π subroutine dorm2r π
subroutine dorm2r (character side, character trans, integer m, integer n,
integer k, double precision, dimension( lda, * ) a, integer lda, double
precision, dimension( * ) tau, double precision, dimension( ldc, * ) c,
integer ldc, double precision, dimension( * ) work, integer info)
DORM2R multiplies a general matrix by the orthogonal matrix from a QR factorization determined by sgeqrf (unblocked algorithm).
π« Purpose π«
Okay so DORM2R overwrites the general real m by n matrix C with:
Q * C if SIDE = 'L' and TRANS = 'N', or
Q**T* C if SIDE = 'L' and TRANS = 'T', or
C * Q if SIDE = 'R' and TRANS = 'N', or
C * Q**T if SIDE = 'R' and TRANS = 'T',
where Q is a real orthogonal matrix defined as the product of k elementary reflectors:
Q = H(1) H(2) . . . H(k)
as returned by DGEQRF. Q is of order m if SIDE = 'L' and of order n if SIDE = 'R'.
π Parameters π
SIDEβCHARACTER*1.= 'L': applyQorQ**Tfrom the Left;= 'R': applyQorQ**Tfrom the Right.TRANSβCHARACTER*1.= 'N': applyQ(No transpose);= 'T': applyQ**T(Transpose).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.AβDOUBLE PRECISION array, dimension(LDA,K). Thei-th column must contain the vector which defines the elementary reflectorH(i), fori = 1,2,...,k, as returned byDGEQRFin the firstkcolumns of its array argumentA.LDAβINTEGER. The leading dimension of the arrayA. IfSIDE = 'L',LDA >= max(1,M); ifSIDE = 'R',LDA >= max(1,N).TAUβDOUBLE PRECISION array, dimension(K).TAU(i)must contain the scalar factor of the elementary reflectorH(i), as returned byDGEQRF.CβDOUBLE PRECISION array, dimension(LDC,N). On entry, them by nmatrixC. On exit,Cis overwritten byQ*CorQ**T*CorC*Q**TorC*Q.LDCβINTEGER. The leading dimension of the arrayC.LDC >= max(1,M).WORKβDOUBLE PRECISION array, dimension(N)ifSIDE = 'L',(M)ifSIDE = '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 156 of file dorm2r.f.
π subroutine sorm2r π
subroutine sorm2r (character side, character trans, integer m, integer n,
integer k, real, dimension( lda, * ) a, integer lda, real, dimension( *
) tau, real, dimension( ldc, * ) c, integer ldc, real, dimension( * )
work, integer info)
SORM2R multiplies a general matrix by the orthogonal matrix from a QR factorization determined by sgeqrf (unblocked algorithm).
π« Purpose π«
Okay so SORM2R overwrites the general real m by n matrix C with:
Q * C if SIDE = 'L' and TRANS = 'N', or
Q**T* C if SIDE = 'L' and TRANS = 'T', or
C * Q if SIDE = 'R' and TRANS = 'N', or
C * Q**T if SIDE = 'R' and TRANS = 'T',
where Q is a real orthogonal matrix defined as the product of k elementary reflectors:
Q = H(1) H(2) . . . H(k)
as returned by SGEQRF. Q is of order m if SIDE = 'L' and of order n if SIDE = 'R'.
π Parameters π
SIDEβCHARACTER*1.= 'L': applyQorQ**Tfrom the Left;= 'R': applyQorQ**Tfrom the Right.TRANSβCHARACTER*1.= 'N': applyQ(No transpose);= 'T': applyQ**T(Transpose).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.AβREAL array, dimension(LDA,K). Thei-th column must contain the vector which defines the elementary reflectorH(i), fori = 1,2,...,k, as returned bySGEQRFin the firstkcolumns of its array argumentA.Ais modified by the routine but restored on exit.LDAβINTEGER. The leading dimension of the arrayA. IfSIDE = 'L',LDA >= max(1,M); ifSIDE = 'R',LDA >= max(1,N).TAUTAUβ ok soTAUis aREALarray, dimension(K).TAU(i)must contain the scalar factor of the elementary reflectorH(i), as returned bySGEQRF. That's the whole assignment, bestie πCβCis aREALarray, dimension(LDC,N). On entry it's thembynmatrixC. On exit,Cis overwritten byQ*CorQ**T*CorC*Q**TorC*Q. Not me warning you: the originalCis literally gone, so don't expect it to text you back πLDCβLDCisINTEGER, the leading dimension of the arrayC. Constraint:LDC >= max(1,M). Periodt πWORKβWORKis aREALarray, dimension(N)ifSIDE = 'L', and(M)ifSIDE = 'R'. It's giving scratch space, but make it useful π«ΆINFOβINFOisINTEGER.= 0: successful exit.< 0: ifINFO = -i, thei-th argument had an illegal value. Do not ignore this, bestie. It's literally the vibe check β οΈ
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 157 of file sorm2r.f.
π¦ subroutine zunm2r π¦
subroutine zunm2r (character side, character trans, integer m, integer n,
integer k, complex*16, dimension( lda, * ) a, integer lda, complex*16,
dimension( * ) tau, complex*16, dimension( ldc, * ) c, integer ldc,
complex*16, dimension( * ) work, integer info)
ZUNM2R multiplies a general matrix by the unitary matrix from a QR factorization determined by cgeqrf (unblocked algorithm). Iconic behavior, no cap π
β¨ Purpose β¨
ZUNM2R overwrites the general complex m-by-n matrix C with:
Q * C if SIDE = 'L' and TRANS = 'N', or
Q**H* C if SIDE = 'L' and TRANS = 'C', or
C * Q if SIDE = 'R' and TRANS = 'N', or
C * Q**H if SIDE = 'R' and TRANS = 'C',
where Q is a complex unitary matrix defined as the product of k elementary reflectors:
Q = H(1) H(2) . . . H(k)
as returned by ZGEQRF. Q is of order m if SIDE = 'L' and of order n if SIDE = 'R'. It's giving matrix magic, and honestly? Obsessed. π
π Parameters π
SIDEβSIDEisCHARACTER*1.= 'L': applyQorQ**Hfrom the Left.= 'R': applyQorQ**Hfrom the Right. Pick a side, bestie πTRANSβTRANSisCHARACTER*1.= 'N': applyQ(No transpose).= 'C': applyQ**H(Conjugate transpose). Conjugate transpose is the main character here, iykyk. πMβMisINTEGER, the number of rows of the matrixC. Constraint:M >= 0. Respect the row count fr fr β¨NβNisINTEGER, the number of columns of the matrixC. Constraint:N >= 0. Columns are also valid, periodt πΈKβKisINTEGER, the number of elementary reflectors whose product defines the matrixQ. IfSIDE = 'L', thenM >= K >= 0; ifSIDE = 'R', thenN >= K >= 0. The way these bounds are not optional... πAβAis aCOMPLEX*16array, dimension(LDA,K). Thei-th column must contain the vector which defines the elementary reflectorH(i), fori = 1,2,...,k, as returned byZGEQRFin the firstkcolumns of its array argumentA.Ais modified by the routine but restored on exit. So it gets touched, but it gets put back. We love a respectful icon π«ΆLDAβLDAisINTEGER, the leading dimension of the arrayA. IfSIDE = 'L', thenLDA >= max(1,M); ifSIDE = 'R', thenLDA >= max(1,N). Do not fumble this one, bestie. π¨TAUβTAUis aCOMPLEX*16array, dimension(K).TAU(i)must contain the scalar factor of the elementary reflectorH(i), as returned byZGEQRF. Same energy, complex edition πCβCis aCOMPLEX*16array, dimension(LDC,N). On entry, it's them-by-nmatrixC. On exit,Cis overwritten byQ*CorQ**H*CorC*Q**HorC*Q. Again: overwritten means the oldCis not coming back. Not me being dramatic, just accurate πLDCβLDCisINTEGER, the leading dimension of the arrayC. Constraint:LDC >= max(1,M). Slay the dimension check πWORKβWORKis aCOMPLEX*16array, dimension(N)ifSIDE = 'L', and(M)ifSIDE = 'R'. Scratch space but make it make sense β¨INFOβINFOisINTEGER.= 0: successful exit.< 0: ifINFO = -i, thei-th argument had an illegal value. This is your bestie telling you something went wrong β listen. π«Ά
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 157 of file zunm2r.f.
π«Ά Author π«Ά
Generated automatically by Doxygen for LAPACK from the source code.
Footer stamp: LAPACK, Version 3.12.0, unm2r(3) β no date listed in the footer, so we're not inventing one. Bye bestie, go slay those matrices! πβ¨π
π¦ 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