ZTGSY2(3)
okay so bestie, welcome to the ZTGSY2(3) page from the Library Functions Manual β LAPACK girlies, this one is the unblocked generalized Sylvester equation solver, and we are gonna get through every single detail together, no cap. π
π NAME π
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/ztgsy2.f
β¨ SYNOPSIS β¨
Functions/Subroutines
subroutine ZTGSY2 (trans, ijob, m, n, a, lda, b, ldb, c, ldc, d, ldd, e,
lde, f, ldf, scale, rdsum, rdscal, info)
ZTGSY2 solves the generalized Sylvester equation (unblocked
algorithm).
π¦ Function/Subroutine Documentation π¦
subroutine ZTGSY2 (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 rdsum, double precision rdscal,
integer info)
ZTGSY2 solves the generalized Sylvester equation (unblocked algorithm).
πΈ Purpose: πΈ
okay so here's the vibe: ZTGSY2 solves the generalized Sylvester equation
A * R - L * B = scale * C (1)
D * R - L * E = scale * F
using Level 1 and 2 BLAS, 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. 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 solving equation (1) corresponds 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) ],
Ik is the identity matrix of size k 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 is used to compute an estimate of Dif[(A, D), (B, E)] = = sigma_min(Z) using reverse communication with ZLACON.
ZTGSY2 also (IJOB >= 1) contributes to the computation in ZTGSYL of an upper bound on the separation between to matrix pairs. Then the input (A, D), (B, E) are sub-pencils of two matrix pairs in ZTGSYL.
π₯ Parameters π₯
TRANSβTRANS is CHARACTER*1= 'N': solve the generalized Sylvester equation (1).= 'T': solve the 'transposed' system (3).
IJOBβIJOB is INTEGERSpecifies what kind of functionality to be performed.=0: solve (1) only.=1: A contribution from this subsystem to a Frobenius norm-based estimate of the separation between two matrix pairs is computed. (look ahead strategy is used).=2: A contribution from this subsystem to a Frobenius norm-based estimate of the separation between two matrix pairs is computed. (DGECONon sub-systems is used.)- Not referenced if
TRANS = 'T'.
MβM is INTEGEROn entry,Mspecifies the order ofAandD, and the row dimension ofC,F,RandL.NβN is INTEGEROn entry,Nspecifies the order ofBandE, and the column dimension ofC,F,RandL.AβA is COMPLEX*16 array, dimension (LDA, M)On entry,Acontains an upper triangular matrix.LDAβLDA is INTEGERThe leading dimension of the matrixA.LDA >= max(1, M).BβB is COMPLEX*16 array, dimension (LDB, N)On entry,Bcontains an upper triangular matrix.LDBβLDB is INTEGERThe leading dimension of the matrixB.LDB >= max(1, N).CβC is COMPLEX*16 array, dimension (LDC, N)On entry,Ccontains the right-hand-side of the first matrix equation in (1). On exit, ifIJOB = 0,Chas been overwritten by the solutionR.LDCβLDC is INTEGERThe leading dimension of the matrixC.LDC >= max(1, M).DβD is COMPLEX*16 array, dimension (LDD, M)On entry,Dcontains an upper triangular matrix.LDDβLDD is INTEGERThe leading dimension of the matrixD.LDD >= max(1, M).EβE is COMPLEX*16 array, dimension (LDE, N)On entry,Econtains an upper triangular matrix.LDEβLDE is INTEGERThe leading dimension of the matrixE.LDE >= max(1, N).FβF is COMPLEX*16 array, dimension (LDF, N)On entry,Fcontains the right-hand-side of the second matrix equation in (1). On exit, ifIJOB = 0,Fhas been overwritten by the solutionL.LDFβLDF is INTEGERThe leading dimension of the matrixF.LDF >= max(1, M).SCALEβSCALE is DOUBLE PRECISIONOn exit,0 <= SCALE <= 1. If0 < SCALE < 1, the solutionsRandL(CandFon entry) will hold the solutions 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. Normally,SCALE = 1.RDSUMβRDSUM is DOUBLE PRECISIONOn entry, the sum of squares of computed contributions to the Dif-estimate under computation byZTGSYL, where the scaling factorRDSCAL(see below) has been factored out. On exit, the corresponding sum of squares updated with the contributions from the current sub-system. IfTRANS = 'T'RDSUMis not touched.
NOTE:RDSUMonly makes sense whenZTGSY2is called byZTGSYL.
RDSCALβRDSCAL is DOUBLE PRECISIONOn entry, scaling factor used to prevent overflow inRDSUM. On exit,RDSCALis updated w.r.t. the current contributions inRDSUM. IfTRANS = 'T',RDSCALis not touched.
NOTE:RDSCALonly makes sense whenZTGSY2is called byZTGSYL.
INFOβINFO is INTEGEROn exit, ifINFOis set to=0: Successful exit<0: IfINFO = -i, input argument numberiis illegal.>0: The matrix pairs(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.
Definition at line 256 of file ztgsy2.f.
π Author π
Generated automatically by Doxygen for LAPACK from the source code.
okay bestie, that's the whole page. Cute lil sign-off: the footer clocks in as LAPACK, Version 3.12.0, and the page path is /home/abui...RC/ztgsy2.f(3) β no date line on this one, iykyk, so we're not inventing one. π
β¨π«Ά
π¦ where this page comes from
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms