DOPMTR(3)
π¦ DOPMTR(3) β bestie, it's the packed-reflector apply routine π¦
okay so this page lives at /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/dopmtr.f β that's the NAME bit, bestie, that whole entire path is literally the name of this page π
and yes it's from the LAPACK Library Functions Manual, we love a glow-up π
β¨ SYNOPSIS β¨
Functions/Subroutines
subroutine DOPMTR (side, uplo, trans, m, n, ap, tau, c, ldc, work, info)
DOPMTR β that's the whole vibe, no cap π«Ά
πΈ Function/Subroutine Documentation πΈ
subroutine DOPMTR (character side, character uplo, character trans, integer
m, integer n, double precision, dimension( * ) ap, double precision,
dimension( * ) tau, double precision, dimension( ldc, * ) c, integer
ldc, double precision, dimension( * ) work, integer info)
DOPMTR β¨ (again, iconic, we stan a self-titled moment)
π Purpose:
okay so here's the tea, bestie β DOPMTR 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 DSPTRD using packed storage π:
- if
UPLO = 'U',Q = H(nq-1) . . . H(2) H(1); - if
UPLO = 'L',Q = H(1) H(2) . . . H(nq-1).
like, it's giving "I'm just gonna quietly replace your matrix and then leave" π main character energy fr fr
π Parameters
SIDEβSIDEisCHARACTER*1π= 'L': applyQorQ**Tfrom the Left;= 'R': applyQorQ**Tfrom the Right.
UPLOβUPLOisCHARACTER*1π¦= 'U': Upper triangular packed storage used in previous call toDSPTRD;= 'L': Lower triangular packed storage used in previous call toDSPTRD.
TRANSβTRANSisCHARACTER*1β= 'N': No transpose, applyQ;= 'T': Transpose, applyQ**T.
MβMisINTEGERπΈ- The number of rows of the matrix
C.M >= 0.
- The number of rows of the matrix
NβNisINTEGERπ- The number of columns of the matrix
C.N >= 0.
- The number of columns of the matrix
APβAPisDOUBLE PRECISIONarray, dimension(M*(M+1)/2)ifSIDE = 'L'(N*(N+1)/2)ifSIDE = 'R'
The vectors which define the elementary reflectors, as returned by DSPTRD. AP is modified by the routine but restored on exit. (so like, it goes out, has a little adventure, comes back exactly the same β we love a routine that puts things back where it found them π«Ά)
TAUβTAUisDOUBLE PRECISIONarray, dimension(M-1)ifSIDE = 'L'or(N-1)ifSIDE = 'R'πTAU(i)must contain the scalar factor of the elementary reflectorH(i), as returned byDSPTRD.
CβCisDOUBLE PRECISIONarray, dimension(LDC,N)β¨- On entry, the
M-by-NmatrixC. - On exit,
Cis overwritten byQ*CorQ**T*CorC*Q**TorC*Q. (she's been transformed, she's a whole new woman π )
- On entry, the
LDCβLDCisINTEGERπ- The leading dimension of the array
C.LDC >= max(1,M).
- The leading dimension of the array
WORKβWORKisDOUBLE PRECISIONarray, dimension(N)ifSIDE = 'L'(M)ifSIDE = 'R'
INFOβINFOisINTEGERπ₯= 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 148 of file dopmtr.f.
π Author
Generated automatically by Doxygen for LAPACK from the source code. (yes bestie, a robot wrote it, and honestly? it ate π)
okay so that's the whole page π cute little sign-off time: this was LAPACK, Version 3.12.0, and the file is /home/abui...RC/dopmtr.f(3) β go forth and apply those reflectors, bestie, you've got this π§ππ
π¦ where this page comes from
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms