SRC/dtgsyl.f(3)
SRC/dtgsyl.f(3) π
okay so this is the Library Functions Manual page for SRC/dtgsyl.f, and it's lowkey iconic. We're about to go through the generalized Sylvester equation like it's the group chat tea, but every parameter is staying exactly where it belongs. π«Ά
π NAME π
SRC/dtgsyl.f β the DTGSYL subroutine page, no cap.
β¨ SYNOPSIS β¨
π Functions/Subroutines π
subroutine dtgsyl (trans, ijob, m, n, a, lda, b, ldb, c, ldc, d, ldd, e,
lde, f, ldf, scale, dif, work, lwork, iwork, info)
DTGSYL
π«Ά Function/Subroutine Documentation π«Ά
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)
DTGSYL
πΈ Purpose: πΈ
okay bestie, here's the tea: DTGSYL 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', 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. periodt.
π 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. (DGECONon sub-systems is used ).- Not referenced if
TRANS = 'T'.
MβINTEGER. The order of the matricesAandD, and the row dimension of the matricesC,F,RandL.NβINTEGER. The order of the matricesBandE, and the column dimension of the matricesC,F,RandL.AβDOUBLE PRECISION array, dimension (LDA, M). The upper quasi triangular matrixA.LDAβINTEGER. The leading dimension of the arrayA.LDA >= max(1, M).BβDOUBLE PRECISION array, dimension (LDB, N). The upper quasi triangular matrixB.LDBβINTEGER. The leading dimension of the arrayB.LDB >= max(1, N).CβDOUBLE PRECISION array, 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 4 and TRANS = 'N',CholdsR, the solution achieved during the computation of the Dif-estimate.LDCβINTEGER. The leading dimension of the arrayC.LDC >= max(1, M).DβDOUBLE PRECISION array, dimension (LDD, M). The upper triangular matrixD.LDDβINTEGER. The leading dimension of the arrayD.LDD >= max(1, M).EβDOUBLE PRECISION array, dimension (LDE, N). The upper triangular matrixE.LDEβINTEGER. The leading dimension of the arrayE.LDE >= max(1, N).FβDOUBLE PRECISION array, 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 4 and TRANS = 'N',FholdsL, the solution achieved during the computation of the Dif-estimate.LDFβINTEGER. The leading dimension of the arrayF.LDF >= max(1, M).DIFβDOUBLE PRECISION. On exitDIFis 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 = 0 or TRANS = 'T',DIFis not touched.SCALEβDOUBLE PRECISION. On exitSCALEis the scaling factor in (1) or (3). If0 < SCALE < 1,CandFhold the solutionsRandL, resp., to a slightly perturbed system but the input matricesA,B,DandEhave not been changed. IfSCALE = 0,CandFhold the solutionsRandL, respectively, to the homogeneous system withC = F = 0. Normally,SCALE = 1.WORKβDOUBLE PRECISION array, dimension (MAX(1,LWORK)). On exit, ifINFO = 0,WORK(1)returns the optimalLWORK.LWORKβINTEGER. The dimension of the arrayWORK.LWORK > = 1. IfIJOB = 1 or 2 and TRANS = 'N',LWORK >= max(1,2*M*N).
IfLWORK = -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.
IWORKβINTEGER array, dimension (M+N+6).INFOβINTEGER=0: successful exit<0: IfINFO = -i, thei-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 dtgsyl.f.
π¦ Author π¦
Generated automatically by Doxygen for LAPACK from the source code.
okay bye bestie, this was LAPACK Version 3.12.0, page SRC/dtgsyl.f(3) β mwah πβ¨
π¦ 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