Developer Reference for Intel® oneAPI Math Kernel Library for Fortran

ID 766686
Date 3/31/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

?latm5

Generates matrices involved in the Generalized Sylvester equation.

Syntax

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

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

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

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

Include Files
  • mkl.fi
Description

The ?latm5 routine generates matrices involved in the Generalized Sylvester equation:

A * R - L * B = C

D * R - L * E = F

They also satisfy the diagonalization condition:

Input Parameters
prtype

INTEGER. Specifies the type of matrices to generate.

  • If prtype = 1, A and B are Jordan blocks, D and E are identity matrices.

    A:

    If (i == j) then Ai, j = 1.0.

    If (j == i + 1) then Ai, j = -1.0.

    Otherwise Ai, j = 0.0, i, j = 1...m

    B:

    If (i == j) then Bi, j = 1.0 - alpha.

    If (j == i + 1) then Bi, j = 1.0 .

    Otherwise Bi, j = 0.0, i, j = 1...n.

    D:

    If (i == j) then Di, j = 1.0.

    Otherwise Di, j = 0.0, i, j = 1...m.

    E:

    If (i == j) then Ei, j = 1.0

    Otherwise Ei, j = 0.0, i, j = 1...n.

    L = R are chosen from [-10...10], which specifies the right hand sides (C, F).

  • If prtype = 2 or 3: Triangular and/or quasi- triangular.

    A:

    If (ij) then Ai, j = [-1...1].

    Otherwise Ai, j = 0.0, i, j = 1...M.

    If (prtype = 3) then Ak + 1, k + 1 = Ak, k;

    Ak + 1, k = [-1...1];

    sign(Ak, k + 1) = -(sign(Ak + 1, k).

    k = 1, m- 1, qblcka

    B :

    If (ij) then Bi, j = [-1...1].

    Otherwise Bi, j = 0.0, i, j = 1...n.

    If (prtype = 3) thenBk + 1, k + 1 = Bk, k

    Bk + 1, k = [-1...1]

    sign(Bk, k + 1)= -(sign(Bk + 1, k)

    k = 1, n - 1, qblckb.

    D:

    If (ij) then Di, j = [-1...1].

    Otherwise Di, j = 0.0, i, j = 1...m.

    E:

    If (i <= j) then Ei, j = [-1...1].

    Otherwise Ei, j = 0.0, i, j = 1...N.

    L, R are chosen from [-10...10], which specifies the right hand sides (C, F).

  • If prtype = 4 Full

       Ai, j = [-10...10]

       Di, j = [-1...1] i,j = 1...m

       Bi, j = [-10...10]

       Ei, j = [-1...1] i,j = 1...n

       Ri, j = [-10...10]

       Li, j = [-1...1] i = 1..m ,j = 1...n

    L and R specifies the right hand sides (C, F).

  • If prtype = 5 special case common and/or close eigs.

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.

lda

INTEGER. The leading dimension of a.

ldb

INTEGER. The leading dimension of b.

ldc

INTEGER. The leading dimension of c.

ldd

INTEGER. The leading dimension of d.

lde

INTEGER. The leading dimension of e.

ldf

INTEGER. The leading dimension of f.

ldr

INTEGER. The leading dimension of r.

ldl

INTEGER. The leading dimension of l.

alpha

REAL for slatm5,

DOUBLE PRECISION for dlatm5,

REAL for clatm5,

DOUBLE PRECISION for zlatm5,

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.

Output Parameters
a

REAL for slatm5,

DOUBLE PRECISION for dlatm5,

COMPLEX for clatm5,

DOUBLE COMPLEX for zlatm5,

Array, size (lda, m). On exit a contains them-by-m array A initialized according to prtype.

b

REAL for slatm5,

DOUBLE PRECISION for dlatm5,

COMPLEX for clatm5,

DOUBLE COMPLEX for zlatm5,

Array, size (ldb, n). On exit b contains the n-by-n array B initialized according to prtype.

c

REAL for slatm5,

DOUBLE PRECISION for dlatm5,

COMPLEX for clatm5,

DOUBLE COMPLEX for zlatm5,

Array, size (ldc, n). On exit c contains the m-by-n array C initialized according to prtype.

d

REAL for slatm5,

DOUBLE PRECISION for dlatm5,

COMPLEX for clatm5,

DOUBLE COMPLEX for zlatm5,

Array, size (ldd, m). On exit d contains the m-by-m array D initialized according to prtype.

e

REAL for slatm5,

DOUBLE PRECISION for dlatm5,

COMPLEX for clatm5,

DOUBLE COMPLEX for zlatm5,

Array, size (lde, n). On exit e contains the n-by-n array E initialized according to prtype.

f

REAL for slatm5,

DOUBLE PRECISION for dlatm5,

COMPLEX for clatm5,

DOUBLE COMPLEX for zlatm5,

Array, size (ldf, n). On exit f contains the m-by-n array F initialized according to prtype.

r

REAL for slatm5,

DOUBLE PRECISION for dlatm5,

COMPLEX for clatm5,

DOUBLE COMPLEX for zlatm5,

Array, size (ldr, n). On exit R contains the m-by-n array R initialized according to prtype.

l

REAL for slatm5,

DOUBLE PRECISION for dlatm5,

COMPLEX for clatm5,

DOUBLE COMPLEX for zlatm5,

Array, size (ldl, n). On exit l contains the m-by-narray L initialized according to prtype.