TESTING/MATGEN/zlatm5.f(3)
π TESTING/MATGEN/zlatm5.f π
okay so this is the Library Functions Manual page for TESTING/MATGEN/zlatm5.f β LAPACK testing/matgen bestie, we are so in it. β¨
πΈ NAME πΈ
TESTING/MATGEN/zlatm5.f
π¦ SYNOPSIS π¦
π Functions/Subroutines π
subroutine zlatm5β the main character, full signature below, no cap.ZLATM5β yes, that is the name again, iconic.
subroutine zlatm5 (prtype, m, n, a, lda, b, ldb, c, ldc, d, ldd, e, lde,
f, ldf, r, ldr, l, ldl, alpha, qblcka, qblckb)
ZLATM5
π« Function/Subroutine Documentation π«
π
subroutine zlatm5 π
subroutine zlatm5 (integer prtype, integer m, integer n, complex*16,
dimension( lda, * ) a, integer lda, complex*16, dimension( ldb, * ) b,
integer ldb, complex*16, dimension( ldc, * ) c, integer ldc, complex*16,
dimension( ldd, * ) d, integer ldd, complex*16, dimension( lde, * ) e,
integer lde, complex*16, dimension( ldf, * ) f, integer ldf, complex*16,
dimension( ldr, * ) r, integer ldr, complex*16, dimension( ldl, * ) l,
integer ldl, double precision alpha, integer qblcka, integer qblckb)
ZLATM5
β¨ Purpose β¨
okay so ZLATM5 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βINTEGER. selects a certain type of the matrices to generate (see further details). πMβINTEGER. Specifies the order ofAandDand the number of rows inC,F,RandL.NβINTEGER. Specifies the order ofBandEand the number of columns inC,F,RandL.AβCOMPLEX*16 array, dimension (LDA, M). On exit,AisM-by-Mand initialized according toPRTYPE.LDAβINTEGER. The leading dimension ofA.BβCOMPLEX*16 array, dimension (LDB, N). On exit,BisN-by-Nand initialized according toPRTYPE.LDBβINTEGER. The leading dimension ofB.CβCOMPLEX*16 array, dimension (LDC, N). On exit,CisM-by-Nand initialized according toPRTYPE.LDCβINTEGER. The leading dimension ofC.DβCOMPLEX*16 array, dimension (LDD, M). On exit,DisM-by-Mand initialized according toPRTYPE.LDDβINTEGER. The leading dimension ofD.EβCOMPLEX*16 array, dimension (LDE, N). On exit,EisN-by-Nand initialized according toPRTYPE.LDEβINTEGER. The leading dimension ofE.FβCOMPLEX*16 array, dimension (LDF, N). On exit,FisM-by-Nand initialized according toPRTYPE.LDFβINTEGER. The leading dimension ofF.RβCOMPLEX*16 array, dimension (LDR, N). On exit,RisM-by-Nand initialized according toPRTYPE.LDRβINTEGER. The leading dimension ofR.LβCOMPLEX*16 array, dimension (LDL, N). On exit,LisM-by-Nand initialized according toPRTYPE.LDLβINTEGER. The leading dimension ofL.ALPHAβDOUBLE PRECISION. Parameter used in generatingPRTYPE = 1and5matrices.QBLCKAβINTEGER. WhenPRTYPE = 3, specifies the distance between 2-by-2 blocks on the diagonal inA. Otherwise,QBLCKAis not referenced.QBLCKA > 1.QBLCKBβINTEGER. 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 π
okay so here is the PRTYPE lore, bestie β all the formulas stay exactly as LAPACK says:
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 zlatm5.f.
π«Ά Author π«Ά
Generated automatically by Doxygen for LAPACK from the source code.
that's the whole tea, bestie π
β source/version: LAPACK Version 3.12.0; page: TESTING/MATGEN/zlatm5.f(3); footer date: not listed, so no fake date from me. πβ¨
π¦ 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