TESTING/MATGEN/zlatm5.f(3)

πŸ“¦
version 3.12.1 Β· 2 versions
, in arch rolling

πŸ’– 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 of A and D and the number of rows in C, F, R and L.
  • N β€” INTEGER. Specifies the order of B and E and the number of columns in C, F, R and L.
  • A β€” COMPLEX*16 array, dimension (LDA, M). On exit, A is M-by-M and initialized according to PRTYPE.
  • LDA β€” INTEGER. The leading dimension of A.
  • B β€” COMPLEX*16 array, dimension (LDB, N). On exit, B is N-by-N and initialized according to PRTYPE.
  • LDB β€” INTEGER. The leading dimension of B.
  • C β€” COMPLEX*16 array, dimension (LDC, N). On exit, C is M-by-N and initialized according to PRTYPE.
  • LDC β€” INTEGER. The leading dimension of C.
  • D β€” COMPLEX*16 array, dimension (LDD, M). On exit, D is M-by-M and initialized according to PRTYPE.
  • LDD β€” INTEGER. The leading dimension of D.
  • E β€” COMPLEX*16 array, dimension (LDE, N). On exit, E is N-by-N and initialized according to PRTYPE.
  • LDE β€” INTEGER. The leading dimension of E.
  • F β€” COMPLEX*16 array, dimension (LDF, N). On exit, F is M-by-N and initialized according to PRTYPE.
  • LDF β€” INTEGER. The leading dimension of F.
  • R β€” COMPLEX*16 array, dimension (LDR, N). On exit, R is M-by-N and initialized according to PRTYPE.
  • LDR β€” INTEGER. The leading dimension of R.
  • L β€” COMPLEX*16 array, dimension (LDL, N). On exit, L is M-by-N and initialized according to PRTYPE.
  • LDL β€” INTEGER. The leading dimension of L.
  • ALPHA β€” DOUBLE PRECISION. Parameter used in generating PRTYPE = 1 and 5 matrices.
  • QBLCKA β€” INTEGER. When PRTYPE = 3, specifies the distance between 2-by-2 blocks on the diagonal in A. Otherwise, QBLCKA is not referenced. QBLCKA > 1.
  • QBLCKB β€” INTEGER. When PRTYPE = 3, specifies the distance between 2-by-2 blocks on the diagonal in B. Otherwise, QBLCKB is 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