SRC/sormhr.f(3)
β¨ NAME β¨
SRC/sormhr.f β okay bestie, this is the page for SRC/sormhr.f, from the Library Functions Manual. It's all about SORMHR, and we are keeping every single detail. No cap. π
β¨ SYNOPSIS β¨
Functions/Subroutines
subroutine sormhr (...)βSORMHR. Here's the signature, periodt:
subroutine sormhr (side, trans, m, n, ilo, ihi, a, lda, tau, c, ldc,
work, lwork, info)
β¨ Function/Subroutine Documentation β¨
subroutine sormhr (...)
subroutine sormhr (character side, character trans, integer m, integer n,
integer ilo, integer ihi, real, dimension( lda, * ) a, integer lda,
real, dimension( * ) tau, real, dimension( ldc, * ) c, integer ldc,
real, dimension( * ) work, integer lwork, integer info)
SORMHR
β¨ Purpose β¨
Okay so here's the whole vibe: SORMHR 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 IHI-ILO elementary reflectors, as returned by SGEHRD:
Q = H(ilo) H(ilo+1) . . . H(ihi-1).
β¨ Parameters β¨
SIDEβSIDEisCHARACTER*1.= 'L': applyQorQ**Tfrom the Left;= 'R': applyQorQ**Tfrom the Right.TRANSβTRANSisCHARACTER*1.= 'N': No transpose, applyQ;= 'T': Transpose, applyQ**T.MβMisINTEGER. The number of rows of the matrixC.M >= 0.NβNisINTEGER. The number of columns of the matrixC.N >= 0.ILOβILOisINTEGER.IHIβIHIisINTEGER.ILOandIHImust have the same values as in the previous call ofSGEHRD.Qis equal to the unit matrix except in the submatrixQ(ilo+1:ihi,ilo+1:ihi). IfSIDE = 'L', then1 <= ILO <= IHI <= M, ifM > 0, andILO = 1andIHI = 0, ifM = 0; ifSIDE = 'R', then1 <= ILO <= IHI <= N, ifN > 0, andILO = 1andIHI = 0, ifN = 0.AβAisREALarray, dimension(LDA,M)ifSIDE = 'L',(LDA,N)ifSIDE = 'R'. The vectors which define the elementary reflectors, as returned bySGEHRD.LDAβLDAisINTEGER. The leading dimension of the arrayA.LDA >= max(1,M)ifSIDE = 'L';LDA >= max(1,N)ifSIDE = 'R'.TAUβTAUisREALarray, dimension(M-1)ifSIDE = 'L',(N-1)ifSIDE = 'R'.TAU(i)must contain the scalar factor of the elementary reflectorH(i), as returned bySGEHRD.CβCisREALarray, dimension(LDC,N). On entry, theM-by-NmatrixC. On exit,Cis overwritten byQ*CorQ**T*CorC*Q**TorC*Q.LDCβLDCisINTEGER. The leading dimension of the arrayC.LDC >= max(1,M).WORKβWORKisREALarray, dimension(MAX(1,LWORK)). On exit, ifINFO = 0,WORK(1)returns the optimalLWORK.LWORKβLWORKisINTEGER. 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. IfLWORK = -1, then a workspace query is assumed; the routine only calculates the optimal size of theWORKarray, returns this value as the first entry of theWORKarray, and no error message related toLWORKis issued byXERBLA.INFOβINFOisINTEGER.= 0: successful exit.< 0: ifINFO = -i, thei-th argument had an illegal value.
Bestie note:LWORK = -1is the special workspace-query vibe β it only calculates the optimal size of theWORKarray and returns that value as the first entry ofWORK, andXERBLAdoes not issue aLWORK-related error message for that case. That's in the original, fr fr.
β¨ Author β¨
Univ. of TennesseeUniv. of California BerkeleyUniv. of Colorado DenverNAG Ltd.
β¨ Definition β¨
Definition at line 177 of file sormhr.f.
β¨ Author β¨
Generated automatically by Doxygen for LAPACK from the source code.
π okay that's the whole page, bestie. Footer vibe: LAPACK Version 3.12.0 and SRC/sormhr.f(3) β generated automatically by Doxygen for LAPACK from the source code. You ate that. π«Ά
π¦ 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