SORMHR(3)
hey bestie ๐ welcome to /home/abui...RC/sormhr.f(3) โ yep, thatโs the page, and it lives in the Library Functions Manual. Itโs giving โlinear algebra bestie goes to the group chat,โ and we are so here for it. โจ
๐ NAME ๐
okay so the name section is literally this file path, no cap:
/home/abuild/rpmbuild/BUILD/lapack-
static-3.12.0-build/lapack-3.12.0/SRC/sormhr.f
โจ SYNOPSIS โจ
๐งฎ Functions/Subroutines ๐งฎ
Under Functions/Subroutines, weโve got this iconic little declaration:
subroutine SORMHR (side, trans, m, n, ilo, ihi, a, lda, tau, c, ldc,
work, lwork, info)
SORMHR
๐ Function/Subroutine Documentation ๐
Hereโs the full signature, bestie โ every type, every dimension, every argument, exactly as it appears:
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 SORMHR overwrites the general real M-by-N matrix C with this whole situation:
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).
periodt. ๐
๐ธ Parameters ๐ธ
๐ฆ SIDE ๐ฆ
SIDE is CHARACTER*1 โ hereโs the tea:
= 'L': apply Q or Q**T from the Left;= 'R': apply Q or Q**T from the Right.
๐ฆ TRANS ๐ฆ
TRANS is CHARACTER*1:
= 'N': No transpose, apply Q;= 'T': Transpose, apply Q**T.
๐ฆ M ๐ฆ
M is INTEGER. Itโs the number of rows of the matrix C. Constraint check: M >= 0. โจ
๐ฆ N ๐ฆ
N is INTEGER. Itโs the number of columns of the matrix C. Constraint check: N >= 0. โจ
๐ฆ ILO ๐ฆ
ILO is INTEGER.
๐ฆ IHI ๐ฆ
IHI is INTEGER.
and okay, important bestie note: ILO and IHI must have the same values as in the previous call of SGEHRD. Q is equal to the unit matrix except in the submatrix Q(ilo+1:ihi,ilo+1:ihi).
If SIDE = 'L', then 1 <= ILO <= IHI <= M, if M > 0, and ILO = 1 and IHI = 0, if M = 0;
if SIDE = 'R', then 1 <= ILO <= IHI <= N, if N > 0, and ILO = 1 and IHI = 0, if N = 0.
๐ฆ A ๐ฆ
A is REAL array, dimension
(LDA,M) if SIDE = 'L'
(LDA,N) if SIDE = 'R'
These are the vectors which define the elementary reflectors, as returned by SGEHRD. ๐ซถ
๐ฆ LDA ๐ฆ
LDA is INTEGER. Itโs the leading dimension of the array A.
LDA >= max(1,M) if SIDE = 'L'; LDA >= max(1,N) if SIDE = 'R'.
๐ฆ TAU ๐ฆ
TAU is REAL array, dimension
(M-1) if SIDE = 'L'
(N-1) if SIDE = 'R'
TAU(i) must contain the scalar factor of the elementary reflector H(i), as returned by SGEHRD. no cap. ๐
๐ฆ C ๐ฆ
C is REAL array, dimension (LDC,N).
On entry, the M-by-N matrix C.
On exit, C is overwritten by Q*C or Q**T*C or C*Q**T or C*Q.
๐ฆ LDC ๐ฆ
LDC is INTEGER. Itโs the leading dimension of the array C. Constraint: LDC >= max(1,M).
๐ฆ WORK ๐ฆ
WORK is REAL array, dimension (MAX(1,LWORK)).
On exit, if INFO = 0, WORK(1) returns the optimal LWORK. ๐ซ
๐ฆ LWORK ๐ฆ
LWORK is INTEGER. Itโs the dimension of the array WORK.
If SIDE = 'L', LWORK >= max(1,N);
if SIDE = 'R', LWORK >= max(1,M).
For optimum performance LWORK >= N*NB if SIDE = 'L', and LWORK >= M*NB if SIDE = 'R', where NB is 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. okay thatโs actually kinda iconic. โจ
๐ฆ INFO ๐ฆ
INFO is INTEGER:
= 0: successful exit< 0: if INFO = -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 177 of file sormhr.f.
๐ Author ๐ (the auto-gen one)
Generated automatically by Doxygen for LAPACK from the source code.
okay thatโs a wrap, bestie ๐ซถ โ footer check: LAPACK Version 3.12.0 and /home/abui...RC/sormhr.f(3). bye ๐
โจ๐ธ
๐ฆ 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