fortran-lapack
Loading...
Searching...
No Matches
la_lapack::tgsyl Interface Reference

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

Public Member Functions

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
 

Detailed Description

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.

Member Function/Subroutine Documentation

◆ 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: