TESTING/MATGEN/slatm5.f(3)
๐ TESTING/MATGEN/slatm5.f(3) ๐
okay so this is the Library Functions Manual page for TESTING/MATGEN/slatm5.f(3), and it's giving very serious matrix-generator business bestie. Like, we are in TESTING/MATGEN, and this page is about one subroutine that makes test matrices for the generalized Sylvester equation. No cap, it's a whole vibe. โจ
๐ธ NAME ๐ธ
TESTING/MATGEN/slatm5.f
๐ SYNOPSIS ๐
โจ Functions/Subroutines โจ
subroutine slatm5 (prtype, m, n, a, lda, b, ldb, c, ldc, d, ldd, e, lde,
f, ldf, r, ldr, l, ldl, alpha, qblcka, qblckb)
SLATM5
The routine is SLATM5, and yes, that's the whole synopsis tea. ๐
๐ ๏ธ Function/Subroutine Documentation ๐ ๏ธ
subroutine slatm5 (integer prtype, integer m, integer n, real, dimension(
lda, * ) a, integer lda, real, dimension( ldb, * ) b, integer ldb, real,
dimension( ldc, * ) c, integer ldc, real, dimension( ldd, * ) d, integer
ldd, real, dimension( lde, * ) e, integer lde, real, dimension( ldf, * )
f, integer ldf, real, dimension( ldr, * ) r, integer ldr, real,
dimension( ldl, * ) l, integer ldl, real alpha, integer qblcka, integer
qblckb)
SLATM5
๐ผ Purpose: ๐ผ
okay so here's the main character moment: SLATM5 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โPRTYPE is INTEGER; it points to a certain type of the matrices to generate (see further details below).MโM is INTEGER; specifies the order ofAandDand the number of rows inC,F,RandL.NโN is INTEGER; specifies the order ofBandEand the number of columns inC,F,RandL.AโA is REAL array, dimension (LDA, M).On exitAM-by-Mis initialized according toPRTYPE.LDAโLDA is INTEGER; the leading dimension ofA.BโB is REAL array, dimension (LDB, N).On exitBN-by-Nis initialized according toPRTYPE.LDBโLDB is INTEGER; the leading dimension ofB.CโC is REAL array, dimension (LDC, N).On exitCM-by-Nis initialized according toPRTYPE.LDCโLDC is INTEGER; the leading dimension ofC.DโD is REAL array, dimension (LDD, M).On exitDM-by-Mis initialized according toPRTYPE.LDDโLDD is INTEGER; the leading dimension ofD.EโE is REAL array, dimension (LDE, N).On exitEN-by-Nis initialized according toPRTYPE.LDEโLDE is INTEGER; the leading dimension ofE.FโF is REAL array, dimension (LDF, N).On exitFM-by-Nis initialized according toPRTYPE.LDFโLDF is INTEGER; the leading dimension ofF.RโR is REAL array, dimension (LDR, N).On exitRM-by-Nis initialized according toPRTYPE.LDRโLDR is INTEGER; the leading dimension ofR.LโL is REAL array, dimension (LDL, N).On exitLM-by-Nis initialized according toPRTYPE.LDLโLDL is INTEGER; the leading dimension ofL.ALPHAโALPHA is REAL; parameter used in generatingPRTYPE = 1and5matrices.QBLCKAโQBLCKA is INTEGER; whenPRTYPE = 3, specifies the distance between2-by-2blocks on the diagonal inA. Otherwise,QBLCKAis not referenced.QBLCKA > 1.QBLCKBโQBLCKB is INTEGER; whenPRTYPE = 3, specifies the distance between2-by-2blocks 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.
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.
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
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 slatm5.f.
๐ Author ๐
Generated automatically by Doxygen for LAPACK from the source code.
Cute sign-off: the footer tea is LAPACK Version 3.12.0 for page TESTING/MATGEN/slatm5.f(3) โ no separate date line shown there, bestie, so that's the whole stamp. mwah ๐
๐
๐ฆ 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