TESTING/MATGEN/dlatm5.f(3)
NAME π
TESTING/MATGEN/dlatm5.f β this is the DLATM5 subroutine page, bestie. Manual name? Library Functions Manual. The whole icon situation is TESTING/MATGEN/dlatm5.f(3).
SYNOPSIS β¨
Functions/Subroutines π¦
DLATM5β the one and only subroutine here. Signature, copied exact:
subroutine dlatm5 (prtype, m, n, a, lda, b, ldb, c, ldc, d, ldd, e, lde,
f, ldf, r, ldr, l, ldl, alpha, qblcka, qblckb)
DLATM5
Function/Subroutine Documentation π
Hereβs the full dlatm5 signature, no cap:
subroutine dlatm5 (integer prtype, integer m, integer n, double precision,
dimension( lda, * ) a, integer lda, double precision, dimension( ldb, *
) b, integer ldb, double precision, dimension( ldc, * ) c, integer ldc,
double precision, dimension( ldd, * ) d, integer ldd, double precision,
dimension( lde, * ) e, integer lde, double precision, dimension( ldf, *
) f, integer ldf, double precision, dimension( ldr, * ) r, integer ldr,
double precision, dimension( ldl, * ) l, integer ldl, double precision
alpha, integer qblcka, integer qblckb)
DLATM5
Purpose π
okay so DLATM5 generates matrices involved in the Generalized Sylvester equation:
A * R - L * B = C
D * R - L * E = F
They also satisfy (the diagonalization condition):
[ I -L ] ( [ A -C ], [ D -F ] ) [ I R ] = ( [ A ], [ D ] )
[ I ] ( [ B ] [ E ] ) [ I ] ( [ B ] [ E ] )
Parameters π
PRTYPEβPRTYPEisINTEGER; it points to a certain type of the matrices to generate (see further details below π).MβMisINTEGER; specifies the order ofAandDand the number of rows inC,F,RandL.NβNisINTEGER; specifies the order ofBandEand the number of columns inC,F,RandL.AβAisDOUBLE PRECISION array, dimension (LDA, M). On exitAM-by-Mis initialized according toPRTYPE.LDAβLDAisINTEGER; the leading dimension ofA.BβBisDOUBLE PRECISION array, dimension (LDB, N). On exitBN-by-Nis initialized according toPRTYPE.LDBβLDBisINTEGER; the leading dimension ofB.CβCisDOUBLE PRECISION array, dimension (LDC, N). On exitCM-by-Nis initialized according toPRTYPE.LDCβLDCisINTEGER; the leading dimension ofC.DβDisDOUBLE PRECISION array, dimension (LDD, M). On exitDM-by-Mis initialized according toPRTYPE.LDDβLDDisINTEGER; the leading dimension ofD.EβEisDOUBLE PRECISION array, dimension (LDE, N). On exitEN-by-Nis initialized according toPRTYPE.LDEβLDEisINTEGER; the leading dimension ofE.FβFisDOUBLE PRECISION array, dimension (LDF, N). On exitFM-by-Nis initialized according toPRTYPE.LDFβLDFisINTEGER; the leading dimension ofF.RβRisDOUBLE PRECISION array, dimension (LDR, N). On exitRM-by-Nis initialized according toPRTYPE.LDRβLDRisINTEGER; the leading dimension ofR.LβLisDOUBLE PRECISION array, dimension (LDL, N). On exitLM-by-Nis initialized according toPRTYPE.LDLβLDLisINTEGER; the leading dimension ofL.ALPHAβALPHAisDOUBLE PRECISION; parameter used in generatingPRTYPE = 1and5matrices.QBLCKAβQBLCKAisINTEGER; whenPRTYPE = 3, specifies the distance between 2-by-2 blocks on the diagonal inA. Otherwise,QBLCKAis not referenced.QBLCKA > 1.QBLCKBβQBLCKBisINTEGER; whenPRTYPE = 3, specifies the distance between 2-by-2 blocks on the diagonal inB. Otherwise,QBLCKBis not referenced.QBLCKB > 1.
Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Further Details π₯
PRTYPE = 1: A and B are Jordan blocks, D and E are identity matrices.
A : if (i == j) then A(i, j) = 1.0
if (j == i + 1) then A(i, j) = -1.0
else A(i, j) = 0.0, i, j = 1...M
B : if (i == j) then B(i, j) = 1.0 - ALPHA
if (j == i + 1) then B(i, j) = 1.0
else B(i, j) = 0.0, i, j = 1...N
D : if (i == j) then D(i, j) = 1.0
else D(i, j) = 0.0, i, j = 1...M
E : if (i == j) then E(i, j) = 1.0
else E(i, j) = 0.0, i, j = 1...N
L = R are chosen from [-10...10],
which specifies the right hand sides (C, F).
PRTYPE = 2 or 3: Triangular and/or quasi- triangular.
A : if (i <= j) then A(i, j) = [-1...1]
else A(i, j) = 0.0, i, j = 1...M
if (PRTYPE = 3) then
A(k + 1, k + 1) = A(k, k)
A(k + 1, k) = [-1...1]
sign(A(k, k + 1) = -(sin(A(k + 1, k))
k = 1, M - 1, QBLCKA
B : if (i <= j) then B(i, j) = [-1...1]
else B(i, j) = 0.0, i, j = 1...N
if (PRTYPE = 3) then
B(k + 1, k + 1) = B(k, k)
B(k + 1, k) = [-1...1]
sign(B(k, k + 1) = -(sign(B(k + 1, k))
k = 1, N - 1, QBLCKB
D : if (i <= j) then D(i, j) = [-1...1].
else D(i, j) = 0.0, i, j = 1...M
E : if (i <= j) then D(i, j) = [-1...1]
else E(i, j) = 0.0, i, j = 1...N
L, R are chosen from [-10...10],
which specifies the right hand sides (C, F).
PRTYPE = 4 Full:
A(i, j) = [-10...10]
D(i, j) = [-1...1] i,j = 1...M
B(i, j) = [-10...10]
E(i, j) = [-1...1] i,j = 1...N
R(i, j) = [-10...10]
L(i, j) = [-1...1] i = 1..M ,j = 1...N
L, R specifies the right hand sides (C, F).
PRTYPE = 5 special case common and/or close eigs.
Definition at line 265 of file dlatm5.f.
Author π«Ά
Generated automatically by Doxygen for LAPACK from the source code.
π thatβs the whole vibe, bestie β LAPACK Version 3.12.0, straight from TESTING/MATGEN/dlatm5.f(3). byeee π«Ά
π¦ 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