TGSYL: solves the generalized Sylvester equation: A * R - L * B = scale * C (1) D * R - L * E = scale * F where R and L are unknown m-by-n matrices, (A, D), (B, E) and (C, F) are given matrix pairs of size m-by-m, n-by-n and m-by-n, respectively, with complex entries. A, B, D and E are upper triangular (i.e., (A,D) and (B,E) in generalized Schur form). The solution (R, L) overwrites (C, F). 0 <= SCALE <= 1 is an output scaling factor chosen to avoid overflow. In matrix notation (1) is equivalent to solve Zx = scale*b, where Z is defined as Z = [ kron(In, A) -kron(B**H, Im) ] (2) [ kron(In, D) -kron(E**H, Im) ], Here Ix is the identity matrix of size x and X**H is the conjugate transpose of X. Kron(X, Y) is the Kronecker product between the matrices X and Y. If TRANS = 'C', y in the conjugate transposed system Z**H *y = scale*b is solved for, which is equivalent to solve for R and L in A**H * R + D**H * L = scale * C (3) R * B**H + L * E**H = scale * -F This case (TRANS = 'C') is used to compute an one-norm-based estimate of Dif[(A,D), (B,E)], the separation between the matrix pairs (A,D) and (B,E), using CLACON. If IJOB >= 1, TGSYL computes a Frobenius norm-based estimate of Dif[(A,D),(B,E)]. That is, the reciprocal of a lower bound on the reciprocal of the smallest singular value of Z. This is a level-3 BLAS algorithm.
More...
|
pure subroutine | ctgsyl (trans, ijob, m, n, a, lda, b, ldb, c, ldc, d, ldd, e, lde, f, ldf, scale, dif, work, lwork, iwork, info) |
|
| la_ctgsyl |
|
pure subroutine | dtgsyl (trans, ijob, m, n, a, lda, b, ldb, c, ldc, d, ldd, e, lde, f, ldf, scale, dif, work, lwork, iwork, info) |
|
| la_dtgsyl |
|
| la_qtgsyl |
|
pure subroutine | stgsyl (trans, ijob, m, n, a, lda, b, ldb, c, ldc, d, ldd, e, lde, f, ldf, scale, dif, work, lwork, iwork, info) |
|
| la_stgsyl |
|
| la_wtgsyl |
|
pure subroutine | ztgsyl (trans, ijob, m, n, a, lda, b, ldb, c, ldc, d, ldd, e, lde, f, ldf, scale, dif, work, lwork, iwork, info) |
|
| la_ztgsyl |
|
TGSYL: solves the generalized Sylvester equation: A * R - L * B = scale * C (1) D * R - L * E = scale * F where R and L are unknown m-by-n matrices, (A, D), (B, E) and (C, F) are given matrix pairs of size m-by-m, n-by-n and m-by-n, respectively, with complex entries. A, B, D and E are upper triangular (i.e., (A,D) and (B,E) in generalized Schur form). The solution (R, L) overwrites (C, F). 0 <= SCALE <= 1 is an output scaling factor chosen to avoid overflow. In matrix notation (1) is equivalent to solve Zx = scale*b, where Z is defined as Z = [ kron(In, A) -kron(B**H, Im) ] (2) [ kron(In, D) -kron(E**H, Im) ], Here Ix is the identity matrix of size x and X**H is the conjugate transpose of X. Kron(X, Y) is the Kronecker product between the matrices X and Y. If TRANS = 'C', y in the conjugate transposed system Z**H *y = scale*b is solved for, which is equivalent to solve for R and L in A**H * R + D**H * L = scale * C (3) R * B**H + L * E**H = scale * -F This case (TRANS = 'C') is used to compute an one-norm-based estimate of Dif[(A,D), (B,E)], the separation between the matrix pairs (A,D) and (B,E), using CLACON. If IJOB >= 1, TGSYL computes a Frobenius norm-based estimate of Dif[(A,D),(B,E)]. That is, the reciprocal of a lower bound on the reciprocal of the smallest singular value of Z. This is a level-3 BLAS algorithm.
◆ ctgsyl()
pure subroutine la_lapack::tgsyl::ctgsyl |
( |
character, intent(in) |
trans, |
|
|
integer(ilp), intent(in) |
ijob, |
|
|
integer(ilp), intent(in) |
m, |
|
|
integer(ilp), intent(in) |
n, |
|
|
complex(sp), dimension(lda,*), intent(in) |
a, |
|
|
integer(ilp), intent(in) |
lda, |
|
|
complex(sp), dimension(ldb,*), intent(in) |
b, |
|
|
integer(ilp), intent(in) |
ldb, |
|
|
complex(sp), dimension(ldc,*), intent(inout) |
c, |
|
|
integer(ilp), intent(in) |
ldc, |
|
|
complex(sp), dimension(ldd,*), intent(in) |
d, |
|
|
integer(ilp), intent(in) |
ldd, |
|
|
complex(sp), dimension(lde,*), intent(in) |
e, |
|
|
integer(ilp), intent(in) |
lde, |
|
|
complex(sp), dimension(ldf,*), intent(inout) |
f, |
|
|
integer(ilp), intent(in) |
ldf, |
|
|
real(sp), intent(out) |
scale, |
|
|
real(sp), intent(out) |
dif, |
|
|
complex(sp), dimension(*), intent(out) |
work, |
|
|
integer(ilp), intent(in) |
lwork, |
|
|
integer(ilp), dimension(*), intent(out) |
iwork, |
|
|
integer(ilp), intent(out) |
info |
|
) |
| |
◆ dtgsyl()
pure subroutine la_lapack::tgsyl::dtgsyl |
( |
character, intent(in) |
trans, |
|
|
integer(ilp), intent(in) |
ijob, |
|
|
integer(ilp), intent(in) |
m, |
|
|
integer(ilp), intent(in) |
n, |
|
|
real(dp), dimension(lda,*), intent(in) |
a, |
|
|
integer(ilp), intent(in) |
lda, |
|
|
real(dp), dimension(ldb,*), intent(in) |
b, |
|
|
integer(ilp), intent(in) |
ldb, |
|
|
real(dp), dimension(ldc,*), intent(inout) |
c, |
|
|
integer(ilp), intent(in) |
ldc, |
|
|
real(dp), dimension(ldd,*), intent(in) |
d, |
|
|
integer(ilp), intent(in) |
ldd, |
|
|
real(dp), dimension(lde,*), intent(in) |
e, |
|
|
integer(ilp), intent(in) |
lde, |
|
|
real(dp), dimension(ldf,*), intent(inout) |
f, |
|
|
integer(ilp), intent(in) |
ldf, |
|
|
real(dp), intent(out) |
scale, |
|
|
real(dp), intent(out) |
dif, |
|
|
real(dp), dimension(*), intent(out) |
work, |
|
|
integer(ilp), intent(in) |
lwork, |
|
|
integer(ilp), dimension(*), intent(out) |
iwork, |
|
|
integer(ilp), intent(out) |
info |
|
) |
| |
◆ la_ctgsyl()
la_lapack::tgsyl::la_ctgsyl |
◆ la_dtgsyl()
la_lapack::tgsyl::la_dtgsyl |
◆ la_qtgsyl()
la_lapack::tgsyl::la_qtgsyl |
◆ la_stgsyl()
la_lapack::tgsyl::la_stgsyl |
◆ la_wtgsyl()
la_lapack::tgsyl::la_wtgsyl |
◆ la_ztgsyl()
la_lapack::tgsyl::la_ztgsyl |
◆ stgsyl()
pure subroutine la_lapack::tgsyl::stgsyl |
( |
character, intent(in) |
trans, |
|
|
integer(ilp), intent(in) |
ijob, |
|
|
integer(ilp), intent(in) |
m, |
|
|
integer(ilp), intent(in) |
n, |
|
|
real(sp), dimension(lda,*), intent(in) |
a, |
|
|
integer(ilp), intent(in) |
lda, |
|
|
real(sp), dimension(ldb,*), intent(in) |
b, |
|
|
integer(ilp), intent(in) |
ldb, |
|
|
real(sp), dimension(ldc,*), intent(inout) |
c, |
|
|
integer(ilp), intent(in) |
ldc, |
|
|
real(sp), dimension(ldd,*), intent(in) |
d, |
|
|
integer(ilp), intent(in) |
ldd, |
|
|
real(sp), dimension(lde,*), intent(in) |
e, |
|
|
integer(ilp), intent(in) |
lde, |
|
|
real(sp), dimension(ldf,*), intent(inout) |
f, |
|
|
integer(ilp), intent(in) |
ldf, |
|
|
real(sp), intent(out) |
scale, |
|
|
real(sp), intent(out) |
dif, |
|
|
real(sp), dimension(*), intent(out) |
work, |
|
|
integer(ilp), intent(in) |
lwork, |
|
|
integer(ilp), dimension(*), intent(out) |
iwork, |
|
|
integer(ilp), intent(out) |
info |
|
) |
| |
◆ ztgsyl()
pure subroutine la_lapack::tgsyl::ztgsyl |
( |
character, intent(in) |
trans, |
|
|
integer(ilp), intent(in) |
ijob, |
|
|
integer(ilp), intent(in) |
m, |
|
|
integer(ilp), intent(in) |
n, |
|
|
complex(dp), dimension(lda,*), intent(in) |
a, |
|
|
integer(ilp), intent(in) |
lda, |
|
|
complex(dp), dimension(ldb,*), intent(in) |
b, |
|
|
integer(ilp), intent(in) |
ldb, |
|
|
complex(dp), dimension(ldc,*), intent(inout) |
c, |
|
|
integer(ilp), intent(in) |
ldc, |
|
|
complex(dp), dimension(ldd,*), intent(in) |
d, |
|
|
integer(ilp), intent(in) |
ldd, |
|
|
complex(dp), dimension(lde,*), intent(in) |
e, |
|
|
integer(ilp), intent(in) |
lde, |
|
|
complex(dp), dimension(ldf,*), intent(inout) |
f, |
|
|
integer(ilp), intent(in) |
ldf, |
|
|
real(dp), intent(out) |
scale, |
|
|
real(dp), intent(out) |
dif, |
|
|
complex(dp), dimension(*), intent(out) |
work, |
|
|
integer(ilp), intent(in) |
lwork, |
|
|
integer(ilp), dimension(*), intent(out) |
iwork, |
|
|
integer(ilp), intent(out) |
info |
|
) |
| |
The documentation for this interface was generated from the following file: