SRC/dormtr.f(3)
π SRC/dormtr.f β Library Functions Manual π
πΈ NAME πΈ
SRC/dormtr.f β bestie, this is the page for the DORMTR subroutine. It's giving βapply a real orthogonal matrix without forming itβ energy, and it lives at SRC/dormtr.f. π
β¨ SYNOPSIS β¨
π¦ Functions/Subroutines π¦
subroutine dormtr (side, uplo, trans, m, n, a, lda, tau, c, ldc, work,
lwork, info)
DORMTR
π Function/Subroutine Documentation π
subroutine dormtr (character side, character uplo, character trans, integer
m, integer n, double precision, dimension( lda, * ) a, integer lda,
double precision, dimension( * ) tau, double precision, dimension( ldc,
* ) c, integer ldc, double precision, dimension( * ) work, integer
lwork, integer info)
DORMTR
π Purpose: π
Okay so DORMTR 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 of order nq, with nq = m if SIDE = 'L' and nq = n if SIDE = 'R'. Q is defined as the product of nq-1 elementary reflectors, as returned by DSYTRD:
if UPLO = 'U', Q = H(nq-1) . . . H(2) H(1);
if UPLO = 'L', Q = H(1) H(2) . . . H(nq-1).
π Parameters π
SIDEβCHARACTER*1.= 'L': applyQorQ**Tfrom the Left;= 'R': applyQorQ**Tfrom the Right.UPLOβCHARACTER*1.= 'U': Upper triangle ofAcontains elementary reflectors fromDSYTRD;= 'L': Lower triangle ofAcontains elementary reflectors fromDSYTRD.TRANSβ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.AβDOUBLE PRECISION array, dimension(LDA,M)ifSIDE = 'L',(LDA,N)ifSIDE = 'R'. The vectors which define the elementary reflectors, as returned byDSYTRD.LDAβINTEGER. The leading dimension of the arrayA.LDA >= max(1,M)ifSIDE = 'L';LDA >= max(1,N)ifSIDE = 'R'.TAUβDOUBLE PRECISION array, dimension(M-1)ifSIDE = 'L',(N-1)ifSIDE = 'R'.TAU(i)must contain the scalar factor of the elementary reflectorH(i), as returned byDSYTRD.CβDOUBLE PRECISION array, dimension(LDC,N). On entry, the M-by-N matrixC. 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(MAX(1,LWORK)). On exit, ifINFO = 0,WORK(1)returns the optimalLWORK.LWORKβINTEGER. The dimension of the arrayWORK. IfSIDE = 'L',LWORK >= max(1,N); ifSIDE = 'R',LWORK >= max(1,M). For optimum performanceLWORK >= N*NBifSIDE = 'L', andLWORK >= M*NBifSIDE = 'R', whereNBis the optimal blocksize.
If LWORK = -1, then a workspace query is assumed; the routine only calculates the optimal size of the WORK array, returns this value as the first entry of the WORK array, and no error message related to LWORK is issued by XERBLA.
INFOβINTEGER.= 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 169 of file dormtr.f.
π Author π
Generated automatically by Doxygen for LAPACK from the source code.
β¨ And that's the whole vibe, bestie! This iconic page is from LAPACK Version 3.12.0 and its source path is SRC/dormtr.f(3) β now go apply those orthogonal matrices 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