tgsyl(3)
πΈ NAME πΈ
tgsyl β literally tgsyl: Sylvester equation. That's the whole name, bestie. The manual calls it tgsyl(3), and it's your go-to for the generalized Sylvester equation. π
β¨ SYNOPSIS β¨
π«Ά Functions π«Ά
Okay so there are four precision flavors, and yes they all ate:
CTGSYLβ the complex one, exact signature:
subroutine ctgsyl (trans, ijob, m, n, a, lda, b, ldb, c, ldc, d, ldd, e, lde, f, ldf, scale, dif, work, lwork, iwork, info)
DTGSYLβ the double precision one:
subroutine dtgsyl (trans, ijob, m, n, a, lda, b, ldb, c, ldc, d, ldd, e, lde, f, ldf, scale, dif, work, lwork, iwork, info)
STGSYLβ the single precision one:
subroutine stgsyl (trans, ijob, m, n, a, lda, b, ldb, c, ldc, d, ldd, e, lde, f, ldf, scale, dif, work, lwork, iwork, info)
ZTGSYLβ the double complex one:
subroutine ztgsyl (trans, ijob, m, n, a, lda, b, ldb, c, ldc, d, ldd, e, lde, f, ldf, scale, dif, work, lwork, iwork, info)
π¦ Detailed Description π¦
The original page goes straight from here into the function docs β no extra lore, just pure linear algebra business. π
π Function Documentation π
π ctgsyl β complex precision, zero chill π
CTGSYL
subroutine ctgsyl (character trans, integer ijob, 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, real scale,
real dif, complex, dimension( * ) work, integer lwork, integer,
dimension( * ) iwork, integer info)
β¨ Purpose β¨
Okay so CTGSYL solves the generalized Sylvester equation, and it's giving major linear algebra main character energy:
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, CTGSYL 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.
π Parameters π
TRANSβTRANS is CHARACTER*1= 'N': solve the generalized sylvester equation (1).= 'C': solve the system (3).
IJOBβIJOB is INTEGER- Specifies what kind of functionality to be performed.
=0: solve (1) only.=1: The functionality of 0 and 3.=2: The functionality of 0 and 4.=3: Only an estimate ofDif[(A,D), (B,E)]is computed. (look ahead strategy is used).=4: Only an estimate ofDif[(A,D), (B,E)]is computed. (CGECON on sub-systems is used).- Not referenced if
TRANS = 'C'.
MβM is INTEGER- The order of the matrices
AandD, and the row dimension of the matricesC,F,RandL.
- The order of the matrices
NβN is INTEGER- The order of the matrices
BandE, and the column dimension of the matricesC,F,RandL.
- The order of the matrices
AβA is COMPLEX array, dimension (LDA, M)- The upper triangular matrix
A.
- The upper triangular matrix
LDAβLDA is INTEGER- The leading dimension of the array
A.LDA >= max(1, M).
- The leading dimension of the array
BβB is COMPLEX array, dimension (LDB, N)- The upper triangular matrix
B.
- The upper triangular matrix
LDBβLDB is INTEGER- The leading dimension of the array
B.LDB >= max(1, N).
- The leading dimension of the array
CβC is COMPLEX array, dimension (LDC, N)- On entry,
Ccontains the right-hand-side of the first matrix equation in (1) or (3). - On exit, if
IJOB = 0, 1 or 2,Chas been overwritten by the solutionR. IfIJOB = 3 or 4andTRANS = 'N',CholdsR, the solution achieved during the computation of the Dif-estimate.
- On entry,
LDCβLDC is INTEGER- The leading dimension of the array
C.LDC >= max(1, M).
- The leading dimension of the array
DβD is COMPLEX array, dimension (LDD, M)- The upper triangular matrix
D.
- The upper triangular matrix
LDDβLDD is INTEGER- The leading dimension of the array
D.LDD >= max(1, M).
- The leading dimension of the array
EβE is COMPLEX array, dimension (LDE, N)- The upper triangular matrix
E.
- The upper triangular matrix
LDEβLDE is INTEGER- The leading dimension of the array
E.LDE >= max(1, N).
- The leading dimension of the array
FβF is COMPLEX array, dimension (LDF, N)- On entry,
Fcontains the right-hand-side of the second matrix equation in (1) or (3). - On exit, if
IJOB = 0, 1 or 2,Fhas been overwritten by the solutionL. IfIJOB = 3 or 4andTRANS = 'N',FholdsL, the solution achieved during the computation of the Dif-estimate.
- On entry,
LDFβLDF is INTEGER- The leading dimension of the array
F.LDF >= max(1, M).
- The leading dimension of the array
DIFβDIF is REAL- On exit
DIFis the reciprocal of a lower bound of the reciprocal of the Dif-function, i.e.DIFis an upper bound ofDif[(A,D), (B,E)] = sigma-min(Z), whereZas in (2). - If
IJOB = 0orTRANS = 'C',DIFis not referenced.
- On exit
SCALEβSCALE is REAL- On exit
SCALEis the scaling factor in (1) or (3). - If
0 < SCALE < 1,CandFhold the solutionsRandL, resp., to a slightly perturbed system but the input matricesA,B,DandEhave not been changed. IfSCALE = 0,RandLwill hold the solutions to the homogeneous system withC = F = 0.
- On exit
WORKβWORK is COMPLEX array, dimension (MAX(1,LWORK))- On exit, if
INFO = 0,WORK(1)returns the optimalLWORK.
- On exit, if
LWORKβLWORK is INTEGER- The dimension of the array
WORK.LWORK > = 1. - If
IJOB = 1 or 2andTRANS = 'N',LWORK >= max(1,2*M*N). - If
LWORK = -1, then a workspace query is assumed; the routine only calculates the optimal size of theWORKarray, returns this value as the first entry of theWORKarray, and no error message related toLWORKis issued byXERBLA.
- The dimension of the array
IWORKβIWORK is INTEGER array, dimension (M+N+2)INFOβINFO is INTEGER=0: successful exit<0: IfINFO = -i, the i-th argument had an illegal value.>0:(A, D)and(B, E)have common or very close eigenvalues.
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
πΈ Contributors πΈ
Bo Kagstrom and Peter Poromaa, Department of Computing Science, Umea University, S-901 87 Umea, Sweden.
π References π
[1]B. Kagstrom and P. Poromaa, LAPACK-Style Algorithms and Software for Solving the Generalized Sylvester Equation and Estimating the Separation between Regular Matrix Pairs, Report UMINF - 93.23, Department of Computing Science, Umea University, S-901 87 Umea, Sweden, December 1993, Revised April 1994, Also as LAPACK Working Note 75. To appear in ACM Trans. on Math. Software, Vol 22, No 1, 1996.[2]B. Kagstrom, A Perturbation Analysis of the Generalized Sylvester Equation (AR - LB, DR - LE ) = (C, F), SIAM J. Matrix Anal. Appl., 15(4):1045-1060, 1994.[3]B. Kagstrom and L. Westin, Generalized Schur Methods with Condition Estimators for Solving the Generalized Sylvester Equation, IEEE Transactions on Automatic Control, Vol. 34, No. 7, July 1989, pp 745-751.
Definition at line 292 of file ctgsyl.f.
π dtgsyl β double precision era π
DTGSYL
subroutine dtgsyl (character trans, integer ijob, integer m, integer n,
double precision, dimension( lda, * ) a, integer lda, double precision,
dimension( ldb, * ) b, integer ldb, double precision, dimension( ldc, *
) c, integer ldc, double precision, dimension( ldd, * ) d, integer ldd,
double precision, dimension( lde, * ) e, integer lde, double precision,
dimension( ldf, * ) f, integer ldf, double precision scale, double
precision dif, double precision, dimension( * ) work, integer lwork,
integer, dimension( * ) iwork, integer info)
π Purpose π
DTGSYL solves the generalized Sylvester equation, no cap:
A * R - L * B = scale * C (1)
D * R - L * E = scale * F
where R and L are unknown m-by-n matrices, and (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 real entries. (A, D) and (B, E) must be in generalized (real) Schur canonical form, i.e. A, B are upper quasi triangular and D, E are upper triangular. π
The solution (R, L) overwrites (C, F). 0 <= SCALE <= 1 is an output scaling factor chosen to avoid overflow. Iconic behavior honestly.
In matrix notation (1) is equivalent to solve Zx = scale b, where Z is defined as:
Z = [ kron(In, A) -kron(B**T, Im) ] (2)
[ kron(In, D) -kron(E**T, Im) ].
Here Ik is the identity matrix of size k and X**T is the transpose of X. kron(X, Y) is the Kronecker product between the matrices X and Y. Yes bestie, that -kron is doing main character math energy. π¦
If TRANS = 'T', DTGSYL solves the transposed system Z**T*y = scale*b, which is equivalent to solve for R and L in:
A**T * R + D**T * L = scale * C (3)
R * B**T + L * E**T = scale * -F
This case (TRANS = 'T') 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 DLACON.
If IJOB >= 1, DTGSYL 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. See [1-2] for more information.
This is a level 3 BLAS algorithm. Slay. π₯
π Parameters π
π TRANS π
TRANS is CHARACTER*1
= 'N': solve the generalized Sylvester equation (1).
= 'T': solve the 'transposed' system (3).
= 'N'β solve the generalized Sylvester equation (1).= 'T'β solve the'transposed'system (3).
π IJOB π
IJOB is INTEGER
Specifies what kind of functionality to be performed.
= 0β solve (1) only.= 1β The functionality of 0 and 3.= 2β The functionality of 0 and 4.= 3β Only an estimate ofDif[(A,D), (B,E)]is computed. (look ahead strategyIJOB = 1is used).= 4β Only an estimate ofDif[(A,D), (B,E)]is computed. (DGECON on sub-systems is used).
Not referenced if TRANS = 'T'.
πΈ M πΈ
M is INTEGER
The order of the matrices A and D, and the row dimension of the matrices C, F, R and L.
πΌ N πΌ
N is INTEGER
The order of the matrices B and E, and the column dimension of the matrices C, F, R and L.
π¦ A π¦
A is DOUBLE PRECISION array, dimension (LDA, M)
The upper quasi triangular matrix A.
π LDA π
LDA is INTEGER
The leading dimension of the array A. LDA >= max(1, M).
π B π
B is DOUBLE PRECISION array, dimension (LDB, N)
The upper quasi triangular matrix B.
π LDB π
LDB is INTEGER
The leading dimension of the array B. LDB >= max(1, N).
πΈ C πΈ
C is DOUBLE PRECISION array, dimension (LDC, N)
On entry, C contains the right-hand-side of the first matrix equation in (1) or (3).
On exit, if IJOB = 0, 1 or 2, C has been overwritten by the solution R. If IJOB = 3 or 4 and TRANS = 'N', C holds R, the solution achieved during the computation of the Dif-estimate.
πΌ LDC πΌ
LDC is INTEGER
The leading dimension of the array C. LDC >= max(1, M).
π¦ D π¦
D is DOUBLE PRECISION array, dimension (LDD, M)
The upper triangular matrix D.
π LDD π
LDD is INTEGER
The leading dimension of the array D. LDD >= max(1, M).
π E π
E is DOUBLE PRECISION array, dimension (LDE, N)
The upper triangular matrix E.
π LDE π
LDE is INTEGER
The leading dimension of the array E. LDE >= max(1, N).
πΈ F πΈ
F is DOUBLE PRECISION array, dimension (LDF, N)
On entry, F contains the right-hand-side of the second matrix equation in (1) or (3).
On exit, if IJOB = 0, 1 or 2, F has been overwritten by the solution L. If IJOB = 3 or 4 and TRANS = 'N', F holds L, the solution achieved during the computation of the Dif-estimate.
πΌ LDF πΌ
LDF is INTEGER
The leading dimension of the array F. LDF >= max(1, M).
π¦ DIF π¦
DIF is DOUBLE PRECISION
On exit DIF is the reciprocal of a lower bound of the reciprocal of the Dif-function, i.e. DIF is an upper bound of Dif[(A,D), (B,E)] = sigma_min(Z), where Z as in (2).
IF IJOB = 0 or TRANS = 'T', DIF is not touched.
π SCALE π
SCALE is DOUBLE PRECISION
On exit SCALE is the scaling factor in (1) or (3). If 0 < SCALE < 1, C and F hold the solutions R and L, resp., to a slightly perturbed system but the input matrices A, B, D and E have not been changed. If SCALE = 0, C and F hold the solutions R and L, respectively, to the homogeneous system with C = F = 0. Normally, SCALE = 1.
π WORK π
WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK))
On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
π LWORK π
LWORK is INTEGER
The dimension of the array WORK. LWORK > = 1.
If IJOB = 1 or 2 and TRANS = 'N', LWORK >= max(1,2*M*N).
If LWORK = -1, then a workspace query is assumed; the routine only calculates the optimal size of the WORK array, returns this value as the first entry of the WORK array, and no error message related to LWORK is issued by XERBLA.
πΈ IWORK πΈ
IWORK is INTEGER array, dimension (M+N+6)
πΌ INFO πΌ
INFO is INTEGER
=0: successful exit
<0: If INFO = -i, the i-th argument had an illegal value.
>0: (A, D) and (B, E) have common or close eigenvalues.
Watch the sign, bestie: negative INFO means an argument was illegal, and positive INFO means (A, D) and (B, E) have common or close eigenvalues.
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
π«Ά Contributors: π«Ά
- Bo Kagstrom and Peter Poromaa, Department of Computing Science, Umea University, S-901 87 Umea, Sweden.
π References: π
- [1] B. Kagstrom and P. Poromaa, LAPACK-Style Algorithms and Software for Solving the Generalized Sylvester Equation and Estimating the Separation between Regular Matrix Pairs, Report UMINF - 93.23, Department of Computing Science, Umea University, S-901 87 Umea, Sweden, December 1993, Revised April 1994, Also as LAPACK Working Note 75. To appear in ACM Trans. on Math. Software, Vol 22, No 1, 1996.
- [2] B. Kagstrom, A Perturbation Analysis of the Generalized Sylvester Equation
(AR - LB, DR - LE ) = (C, F), SIAM J. Matrix Anal. Appl., 15(4):1045-1060, 1994 - [3] B. Kagstrom and L. Westin, Generalized Schur Methods with Condition Estimators for Solving the Generalized Sylvester Equation, IEEE Transactions on Automatic Control, Vol. 34, No. 7, July 1989, pp 745-751.
Definition at line 296 of file dtgsyl.f.
subroutine stgsyl (character trans, integer ijob, integer m, integer n,
real, dimension( lda, * ) a, integer lda, real, dimension( ldb, * ) b,
integer ldb, real, dimension( ldc, * ) c, integer ldc, real, dimension(
ldd, * ) d, integer ldd, real, dimension( lde, * ) e, integer lde, real,
dimension( ldf, * ) f, integer ldf, real scale, real dif, real,
dimension( * ) work, integer lwork, integer, dimension( * ) iwork,
integer info)
STGSYL
Purpose:
okay so bestie, STGSYL 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 real entries. (A, D) and (B, E) must be in generalized (real) Schur canonical form, i.e. A, B are upper quasi triangular and D, E are upper triangular.
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**T, Im) ] (2)
[ kron(In, D) -kron(E**T, Im) ].
Here Ik is the identity matrix of size k and X**T is the transpose of X. kron(X, Y) is the Kronecker product between the matrices X and Y.
If TRANS = 'T', STGSYL solves the transposed system Z**T*y = scale*b, which is equivalent to solve for R and L in
A**T * R + D**T * L = scale * C (3)
R * B**T + L * E**T = scale * -F
This case (TRANS = 'T') 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 SLACON.
If IJOB >= 1, STGSYL 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. See [1-2] for more information.
This is a level 3 BLAS algorithm. π
β¨ Parameters β¨
TRANSβCHARACTER*1β= 'N': solve the generalized Sylvester equation (1).= 'T': solve the 'transposed' system (3).IJOBβINTEGERβ Specifies what kind of functionality to be performed.= 0: solve (1) only.= 1: The functionality of 0 and 3.= 2: The functionality of 0 and 4.= 3: Only an estimate ofDif[(A,D), (B,E)]is computed. (look ahead strategyIJOB = 1is used).= 4: Only an estimate ofDif[(A,D), (B,E)]is computed. (SGECONon sub-systems is used).- Not referenced if
TRANS = 'T'.
MβINTEGERβ The order of the matrices A and D, and the row dimension of the matrices C, F, R and L.NβINTEGERβ The order of the matrices B and E, and the column dimension of the matrices C, F, R and L.AβREAL array, dimension (LDA, M)β The upper quasi triangular matrix A.LDAβINTEGERβ The leading dimension of the array A.LDA >= max(1, M).BβREAL array, dimension (LDB, N)β The upper quasi triangular matrix B.LDBβINTEGERβ The leading dimension of the array B.LDB >= max(1, N).CβREAL array, dimension (LDC, N)β On entry, C contains the right-hand-side of the first matrix equation in (1) or (3). On exit, ifIJOB = 0, 1 or 2, C has been overwritten by the solution R. IfIJOB = 3 or 4andTRANS = 'N', C holds R, the solution achieved during the computation of the Dif-estimate.LDCβINTEGERβ The leading dimension of the array C.LDC >= max(1, M).DβREAL array, dimension (LDD, M)β The upper triangular matrix D.LDDβINTEGERβ The leading dimension of the array D.LDD >= max(1, M).EβREAL array, dimension (LDE, N)β The upper triangular matrix E.LDEβINTEGERβ The leading dimension of the array E.LDE >= max(1, N).FβREAL array, dimension (LDF, N)β On entry, F contains the right-hand-side of the second matrix equation in (1) or (3). On exit, ifIJOB = 0, 1 or 2, F has been overwritten by the solution L. IfIJOB = 3 or 4andTRANS = 'N', F holds L, the solution achieved during the computation of the Dif-estimate.LDFβINTEGERβ The leading dimension of the array F.LDF >= max(1, M).DIFβREALβ On exit DIF is the reciprocal of a lower bound of the reciprocal of the Dif-function, i.e. DIF is an upper bound ofDif[(A,D), (B,E)] = sigma_min(Z), where Z as in (2). IfIJOB = 0orTRANS = 'T', DIF is not touched.SCALEβREALβ On exit SCALE is the scaling factor in (1) or (3). If0 < SCALE < 1, C and F hold the solutions R and L, resp., to a slightly perturbed system but the input matrices A, B, D and E have not been changed. IfSCALE = 0, C and F hold the solutions R and L, respectively, to the homogeneous system withC = F = 0. Normally,SCALE = 1.WORKβREAL array, dimension (MAX(1,LWORK))β On exit, ifINFO = 0,WORK(1)returns the optimal LWORK.LWORKβINTEGERβ The dimension of the array WORK.LWORK >= 1. IfIJOB = 1 or 2andTRANS = 'N',LWORK >= max(1,2*M*N). IfLWORK = -1, then a workspace query is assumed; the routine only calculates the optimal size of the WORK array, returns this value as the first entry of the WORK array, and no error message related to LWORK is issued byXERBLA.IWORKβINTEGER array, dimension (M+N+6).INFOβINTEGERβ=0: successful exit.<0: IfINFO = -i, the i-th argument had an illegal value.>0: (A, D) and (B, E) have common or close eigenvalues.
πΈ Author πΈ
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
π Contributors π
Bo Kagstrom and Peter Poromaa, Department of Computing Science, Umea University, S-901 87 Umea, Sweden.
π¦ References π¦
- [1] B. Kagstrom and P. Poromaa, LAPACK-Style Algorithms and Software for Solving the Generalized Sylvester Equation and Estimating the Separation between Regular Matrix Pairs, Report UMINF - 93.23, Department of Computing Science, Umea University, S-901 87 Umea, Sweden, December 1993, Revised April 1994, Also as LAPACK Working Note 75. To appear in ACM Trans. on Math. Software, Vol 22, No 1, 1996.
- [2] B. Kagstrom, A Perturbation Analysis of the Generalized Sylvester Equation (AR - LB, DR - LE ) = (C, F), SIAM J. Matrix Anal. Appl., 15(4):1045-1060, 1994.
- [3] B. Kagstrom and L. Westin, Generalized Schur Methods with Condition Estimators for Solving the Generalized Sylvester Equation, IEEE Transactions on Automatic Control, Vol. 34, No. 7, July 1989, pp 745-751.
Definition at line 296 of file stgsyl.f.
π« ztgsyl π«
subroutine ztgsyl (character trans, integer ijob, integer m, integer n,
complex*16, dimension( lda, * ) a, integer lda, complex*16, dimension(
ldb, * ) b, integer ldb, complex*16, dimension( ldc, * ) c, integer ldc,
complex*16, dimension( ldd, * ) d, integer ldd, complex*16, dimension(
lde, * ) e, integer lde, complex*16, dimension( ldf, * ) f, integer ldf,
double precision scale, double precision dif, complex*16, dimension( * )
work, integer lwork, integer, dimension( * ) iwork, integer info)
ZTGSYL
β¨ Purpose β¨
okay so ZTGSYL 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 ZLACON.
If IJOB >= 1, ZTGSYL 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. π₯
π Parameters π
TRANSβTRANSisCHARACTER*1β the switch that tells us which equation weβre solving:= 'N': solve the generalized sylvester equation (1).= 'C': solve the system (3).
IJOBisINTEGERβ specifies what kind of functionality is to be performed:=0: solve (1) only.=1: The functionality of 0 and 3.=2: The functionality of 0 and 4.=3: Only an estimate ofDif[(A,D), (B,E)]is computed. (look ahead strategy is used).=4: Only an estimate ofDif[(A,D), (B,E)]is computed. (ZGECONon sub-systems is used).
Not referenced if TRANS = 'C'.
MisINTEGERβ the order of the matricesAandD, and the row dimension of the matricesC,F,RandL.NisINTEGERβ the order of the matricesBandE, and the column dimension of the matricesC,F,RandL.AisCOMPLEX*16array, dimension(LDA, M)β the upper triangular matrixA.LDAisINTEGERβ the leading dimension of the arrayA.LDA >= max(1, M).BisCOMPLEX*16array, dimension(LDB, N)β the upper triangular matrixB.LDBisINTEGERβ the leading dimension of the arrayB.LDB >= max(1, N).CisCOMPLEX*16array, dimension(LDC, N)β on entry,Ccontains the right-hand-side of the first matrix equation in (1) or (3). On exit, ifIJOB = 0, 1 or 2,Chas been overwritten by the solutionR. IfIJOB = 3 or 4andTRANS = 'N',CholdsR, the solution achieved during the computation of the Dif-estimate.LDCisINTEGERβ the leading dimension of the arrayC.LDC >= max(1, M).DisCOMPLEX*16array, dimension(LDD, M)β the upper triangular matrixD.LDDisINTEGERβ the leading dimension of the arrayD.LDD >= max(1, M).EisCOMPLEX*16array, dimension(LDE, N)β the upper triangular matrixE.LDEisINTEGERβ the leading dimension of the arrayE.LDE >= max(1, N).FisCOMPLEX*16array, dimension(LDF, N)β on entry,Fcontains the right-hand-side of the second matrix equation in (1) or (3). On exit, ifIJOB = 0, 1 or 2,Fhas been overwritten by the solutionL. IfIJOB = 3 or 4andTRANS = 'N',FholdsL, the solution achieved during the computation of the Dif-estimate.LDFisINTEGERβ the leading dimension of the arrayF.LDF >= max(1, M).DIFisDOUBLE PRECISIONβ on exit,DIFis the reciprocal of a lower bound of the reciprocal of the Dif-function, i.e.DIFis an upper bound ofDif[(A,D), (B,E)] = sigma-min(Z), whereZas in (2). IfIJOB = 0orTRANS = 'C',DIFis not referenced.SCALEisDOUBLE PRECISIONβ on exit,SCALEis the scaling factor in (1) or (3). If0 < SCALE < 1,CandFhold the solutionsRandL, respectively, to a slightly perturbed system but the input matricesA,B,DandEhave not been changed. IfSCALE = 0,RandLwill hold the solutions to the homogeneous system withC = F = 0.WORKisCOMPLEX*16array, dimension(MAX(1,LWORK))β on exit, ifINFO = 0,WORK(1)returns the optimalLWORK.LWORKisINTEGERβ the dimension of the arrayWORK.LWORK > = 1. IfIJOB = 1 or 2andTRANS = 'N',LWORK >= max(1,2*M*N).
If LWORK = -1, then a workspace query is assumed; the routine only calculates the optimal size of the WORK array, returns this value as the first entry of the WORK array, and no error message related to LWORK is issued by XERBLA.
IWORKisINTEGERarray, dimension(M+N+2).INFOisINTEGER:=0: successful exit<0: IfINFO = -i, thei-th argument had an illegal value.>0:(A, D)and(B, E)have common or very close eigenvalues.
π Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
π Contributors:
- Bo Kagstrom and Peter Poromaa, Department of Computing Science, Umea University, S-901 87 Umea, Sweden.
π References:
[1]B. Kagstrom and P. Poromaa, LAPACK-Style Algorithms and Software for Solving the Generalized Sylvester Equation and Estimating the Separation between Regular Matrix Pairs, Report UMINF - 93.23, Department of Computing Science, Umea University, S-901 87 Umea, Sweden, December 1993, Revised April 1994, Also as LAPACK Working Note 75. To appear in ACM Trans. on Math. Software, Vol 22, No 1, 1996.[2]B. Kagstrom, A Perturbation Analysis of the Generalized Sylvester Equation (AR - LB, DR - LE ) = (C, F), SIAM J. Matrix Anal. Appl., 15(4):1045-1060, 1994.[3]B. Kagstrom and L. Westin, Generalized Schur Methods with Condition Estimators for Solving the Generalized Sylvester Equation, IEEE Transactions on Automatic Control, Vol. 34, No. 7, July 1989, pp 745-751.
π§Ύ Definition at line
Definition at line 292 of file ztgsyl.f.
π Author (the auto-generated one)
Generated automatically by Doxygen for LAPACK from the source code.
okay thatβs the whole page, bestie β shoutout to LAPACK Version 3.12.0 and the tgsyl(3) footer label, and we are so out π
β¨
π¦ where this page comes from
- arch rolling: lapack-doc 3.12.1-2 Β· custom
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms