Intel® oneAPI Math Kernel Library Developer Reference - C
Generates matrices involved in the Generalized Sylvester equation.
void slatm5 (*prtype, lapack_int *m, lapack_int *n, float *a, lapack_int *lda, float *b, lapack_int *ldb, float *c, lapack_int *ldc, float *d, lapack_int *ldd, float *e, lapack_int *lde, float *f, lapack_int *ldf, float *r, lapack_int *ldr, float *l, lapack_int *ldl, float *alpha, lapack_int *qblcka, lapack_int *qblckb);
void dlatm5 (*prtype, lapack_int *m, lapack_int *n, double *a, lapack_int *lda, double *b, lapack_int *ldb, double *c, lapack_int *ldc, double *d, lapack_int *ldd, double *e, lapack_int *lde, double *f, lapack_int *ldf, double *r, lapack_int *ldr, double *l, lapack_int *ldl, double *alpha, lapack_int *qblcka, lapack_int *qblckb);
void clatm5 (*prtype, lapack_int *m, lapack_int *n, lapack_complex_float *a, lapack_int *lda, lapack_complex_float *b, lapack_int *ldb, lapack_complex_float *c, lapack_int *ldc, lapack_complex_float *d, lapack_int *ldd, lapack_complex_float *e, lapack_int *lde, lapack_complex_float *f, lapack_int *ldf, lapack_complex_float *r, lapack_int *ldr, lapack_complex_float *l, lapack_int *ldl, float *alpha, lapack_int *qblcka, lapack_int *qblckb);
void zlatm5 (*prtype, lapack_int *m, lapack_int *n, lapack_complex_double *a, lapack_int *lda, lapack_complex_double *b, lapack_int *ldb, lapack_complex_double *c, lapack_int *ldc, lapack_complex_double *d, lapack_int *ldd, lapack_complex_double *e, lapack_int *lde, lapack_complex_double *f, lapack_int *ldf, lapack_complex_double *r, lapack_int *ldr, lapack_complex_double *l, lapack_int *ldl, float *alpha, lapack_int *qblcka, lapack_int *qblckb);
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:
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 (i ≤ j) 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 (i ≤ j) 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 (i ≤ j) 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.
Specifies the order of A and D and the number of rows in C, F, R and L.
Specifies the order of B and E and the number of columns in C, F, R and L.
The leading dimension of a.
The leading dimension of b.
The leading dimension of c.
The leading dimension of d.
The leading dimension of e.
The leading dimension of f.
The leading dimension of r.
The leading dimension of l.
Parameter used in generating prtype = 1 and 5 matrices.
When prtype = 3, specifies the distance between 2-by-2 blocks on the diagonal in A. Otherwise, qblcka is not referenced. qblcka > 1.
When prtype = 3, specifies the distance between 2-by-2 blocks on the diagonal in B. Otherwise, qblckb is not referenced. qblckb > 1.
Array, size lda*m. On exit a contains them-by-m array A initialized according to prtype.
Array, size ldb*n. On exit b contains the n-by-n array B initialized according to prtype.
Array, size ldc*n. On exit c contains the m-by-n array C initialized according to prtype.
Array, size ldd*m. On exit d contains the m-by-m array D initialized according to prtype.
Array, size lde*n. On exit e contains the n-by-n array E initialized according to prtype.
Array, size ldf*n. On exit f contains the m-by-n array F initialized according to prtype.
Array, size ldr*n. On exit R contains the m-by-n array R initialized according to prtype.
Array, size ldl*n. On exit l contains the m-by-narray L initialized according to prtype.