/home/abui...N/slatm5.f(3)

πŸ“¦ version 3.12.0, in opensuse-leap 16.0

🌸 NAME 🌸

Hey bestie πŸ’– the manual name is /home/abui...N/slatm5.f(3) β€” folded in right here so we're not doing the double-header thing. This is a Library Functions Manual page, and the actual NAME-section path is:

/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/TESTING/MATGEN/slatm5.f

That's it, that's the name, periodt ✨.

✨ 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

πŸ’– 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 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 selects a certain type of the matrices to generate (see Further Details, bestie).

M

M is INTEGER β€” Specifies the order of A and D and the number of rows in C, F, R and L.

N

N is INTEGER β€” Specifies the order of B and E and the number of columns in C, F, R and L.

A

A is REAL array, dimension (LDA, M). On exit A M-by-M is initialized according to PRTYPE.

LDA

LDA is INTEGER β€” The leading dimension of A.

B

B is REAL array, dimension (LDB, N). On exit B N-by-N is initialized according to PRTYPE.

LDB

LDB is INTEGER β€” The leading dimension of B.

C

C is REAL array, dimension (LDC, N). On exit C M-by-N is initialized according to PRTYPE.

LDC

LDC is INTEGER β€” The leading dimension of C.

D

D is REAL array, dimension (LDD, M). On exit D M-by-M is initialized according to PRTYPE.

LDD

LDD is INTEGER β€” The leading dimension of D.

E

E is REAL array, dimension (LDE, N). On exit E N-by-N is initialized according to PRTYPE.

LDE

LDE is INTEGER β€” The leading dimension of E.

F

F is REAL array, dimension (LDF, N). On exit F M-by-N is initialized according to PRTYPE.

LDF

LDF is INTEGER β€” The leading dimension of F.

R

R is REAL array, dimension (LDR, N). On exit R M-by-N is initialized according to PRTYPE.

LDR

LDR is INTEGER β€” The leading dimension of R.

L

L is REAL array, dimension (LDL, N). On exit L M-by-N is initialized according to PRTYPE.

LDL

LDL is INTEGER β€” The leading dimension of L.

ALPHA

ALPHA is REAL β€” Parameter used in generating PRTYPE = 1 and 5 matrices.

QBLCKA

QBLCKA is 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

QBLCKB is 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

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.

Bestie, I did not β€œfix” the sin or the E line that says D β€” that's literally what the source says, and I am not out here rewriting LAPACK lore πŸ’….

Definition at line

Definition at line 265 of file slatm5.f.

Author

Generated automatically by Doxygen for LAPACK from the source code.


Okay bestie, that's the whole page πŸ’– Final footer vibe: LAPACK Version 3.12.0 and /home/abui...N/slatm5.f(3). Go generate those matrices and slay βœ¨πŸ‘‘.

πŸ“¦ where this page comes from