# clatm5.f - Man Page

TESTING/MATGEN/clatm5.f

## Synopsis

### Functions/Subroutines

subroutine clatm5 (prtype, m, n, a, lda, b, ldb, c, ldc, d, ldd, e, lde, f, ldf, r, ldr, l, ldl, alpha, qblcka, qblckb)
CLATM5

## Function/Subroutine Documentation

### subroutine clatm5 (integer prtype, integer m, integer n, complex, dimension( lda, * ) a, integer lda, complex, dimension( ldb, * ) b, integer ldb, complex, dimension( ldc, * ) c, integer ldc, complex, dimension( ldd, * ) d, integer ldd, complex, dimension( lde, * ) e, integer lde, complex, dimension( ldf, * ) f, integer ldf, complex, dimension( ldr, * ) r, integer ldr, complex, dimension( ldl, * ) l, integer ldl, real alpha, integer qblcka, integer qblckb)

CLATM5

Purpose:

``` CLATM5 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
'Points' to a certain type of the matrices to generate
(see further details).```

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 COMPLEX array, dimension (LDA, M).
On exit A M-by-M is initialized according to PRTYPE.```

LDA

```          LDA is INTEGER

B

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

LDB

```          LDB is INTEGER

C

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

LDC

```          LDC is INTEGER

D

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

LDD

```          LDD is INTEGER

E

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

LDE

```          LDE is INTEGER

F

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

LDF

```          LDF is INTEGER

R

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

LDR

```          LDR is INTEGER

L

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

LDL

```          LDL is INTEGER

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

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 clatm5.f.

## Author

Generated automatically by Doxygen for LAPACK from the source code.

## Referenced By

The man page clatm5(3) is an alias of clatm5.f(3).

Tue Nov 28 2023 12:08:43 Version 3.12.0 LAPACK