DORM22(3)
π DORM22(3) β Library Functions Manual π
okay bestie, welcome to DORM22(3) from the Library Functions Manual β the headerβs cute little shorthand is /home/abui...RC/dorm22.f(3), and this is LAPACK doing its banded-orthogonal-matrix thing π
β¨
πΈ NAME πΈ
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/dorm22.f
β¨ SYNOPSIS β¨
π Functions/Subroutines π
DORM22is the subroutine β hereβs the signature, exactly:
subroutine DORM22 (side, trans, m, n, n1, n2, q, ldq, c, ldc, work,
lwork, info)
and the one-liner is: DORM22 multiplies a general matrix by a banded orthogonal matrix.
π¦ Function/Subroutine Documentation π¦
subroutine DORM22 (character side, character trans, integer m, integer n,
integer n1, integer n2, double precision, dimension( ldq, * ) q, integer
ldq, double precision, dimension( ldc, * ) c, integer ldc, double
precision, dimension( * ) work, integer lwork, integer info)
No cap, hereβs the whole signature character-for-character β and yes: DORM22 multiplies a general matrix by a banded orthogonal matrix. π₯
π« Purpose π«
DORM22 overwrites the general real M-by-N matrix C with β and hereβs the exact table/block from the source, bestie, no edits:
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'.
The orthogonal matrix Q processes a 2-by-2 block structure
[ Q11 Q12 ]
Q = [ ]
[ Q21 Q22 ],
where Q12 is an N1-by-N1 lower triangular matrix and Q21 is an
N2-by-N2 upper triangular matrix.
π Parameters π
SIDEβSIDE is CHARACTER*1= 'L': apply Q or Q**T from the Left;= 'R': apply Q or Q**T from the Right.
TRANSβTRANS is CHARACTER*1= 'N': apply Q (No transpose);= 'C': apply Q**T (Conjugate transpose).
MβM is INTEGER; itβs the number of rows of the matrixC.M >= 0.NβN is INTEGER; itβs the number of columns of the matrixC.N >= 0.N1,N2β both areINTEGER, and theyβre the dimension ofQ12andQ21, respectively.N1, N2 >= 0. The following requirement must be satisfied:N1 + N2 = MifSIDE = 'L'andN1 + N2 = NifSIDE = 'R'.QβQ is DOUBLE PRECISION array, dimension
(LDQ,M) if SIDE = 'L'
(LDQ,N) if SIDE = 'R'
LDQβLDQ is INTEGER; itβs the leading dimension of the arrayQ.LDQ >= max(1,M)ifSIDE = 'L';LDQ >= max(1,N)ifSIDE = 'R'.CβC is DOUBLE PRECISION array, dimension (LDC,N). On entry, theM-by-NmatrixC. On exit,Cis overwritten byQ*CorQ**T*CorC*Q**TorC*Q.LDCβLDC is INTEGER; itβs the leading dimension of the arrayC.LDC >= max(1,M).WORKβWORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK)). On exit, ifINFO = 0,WORK(1)returns the optimalLWORK.LWORKβLWORK is INTEGER; itβs the dimension of the arrayWORK. IfSIDE = 'L',LWORK >= max(1,N); ifSIDE = 'R',LWORK >= max(1,M). For optimum performanceLWORK >= M*N.- If
LWORK = -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.
- If
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 161 of file dorm22.f.
π Author π
Generated automatically by Doxygen for LAPACK from the source code.
Final sign-off: source is LAPACK, Version 3.12.0, and the footerβs date β which isnβt spelled out in this snippet, so weβre not inventing one, periodt π
ππ
π¦ 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