SRC/dopmtr.f(3)
π NAME π
SRC/dopmtr.f β okay so this is the SRC/dopmtr.f(3) page from the Library Functions Manual, and itβs here to explain the dopmtr subroutine. Periodt. π
β¨ SYNOPSIS β¨
π¦ Functions/Subroutines π¦
subroutine dopmtr (side, uplo, trans, m, n, ap, tau, c, ldc, work, info)βDOPMTR
πΈ 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
π Purpose π
Okay bestie, hereβs the tea: 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).
π Parameters π
SIDEβ so like,SIDE is CHARACTER*1, and it tells us which side to apply Q or QT from:= 'L': apply Q or QT from the Left;= 'R': apply Q or Q**T from the Right. Left/right main character energy, iykyk. πUPLOβUPLO is CHARACTER*1:= 'U': Upper triangular packed storage used in previous call toDSPTRD;= 'L': Lower triangular packed storage used in previous call toDSPTRD. Itβs giving βwhich packed-storage era are we continuing?β β¨TRANSβTRANS is CHARACTER*1:= 'N': No transpose, apply Q;= 'T': Transpose, apply Q**T. No transpose? Transpose? the drama of it all.MβM is INTEGER, and itβs the number of rows of the matrix C.M >= 0. No negative-row nonsense, bestie. π«ΆNβN is INTEGER, the number of columns of the matrix C.N >= 0. Respect the column count, fr fr.APβAP is DOUBLE PRECISION array, dimension(M*(M+1)/2)ifSIDE = 'L',(N*(N+1)/2)ifSIDE = 'R'. These are the vectors which define the elementary reflectors, as returned byDSPTRD. Heads up:APis modified by the routine but restored on exit. Iconic behavior, honestly. πTAUβTAU is DOUBLE PRECISION array, 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βC is DOUBLE PRECISION array, dimension(LDC,N). On entry, the M-by-N matrix C. On exit, C is overwritten byQ*CorQ**T*CorC*Q**TorC*Q. So yeah, C gets a full glow-up, not a gentle edit. πLDCβLDC is INTEGER, the leading dimension of the array C.LDC >= max(1,M). Respect the leading dimension, no cap. πWORKβWORK is DOUBLE PRECISION array, dimension(N)ifSIDE = 'L',(M)ifSIDE = 'R'. π§INFOβINFO is INTEGER:= 0: successful exit;< 0: ifINFO = -i, the i-th argument had an illegal value. So if INFO is negative, itβs not a vibe β check that i-th argument. π¨
π Author π
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Definition at line 148 of file dopmtr.f.
π§ Author π§
Generated automatically by Doxygen for LAPACK from the source code.
π And thatβs the whole page, bestie β LAPACK Version 3.12.0, source SRC/dopmtr.f(3). The footer didnβt give a date, so no made-up date from me; consider this sign-off stamped with pure 3.12.0 sparkle. π«Άβ¨
π¦ 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