DTGSY2(3)
π DTGSY2(3) β¨
okay so this is from the Library Functions Manual, and it's all about DTGSY2(3) β the unblocked generalized Sylvester equation solver. It's giving serious LAPACK main character energy, so let's get into it bestie.
π NAME
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/dtgsy2.f
β¨ SYNOPSIS
π«Ά Functions/Subroutines
subroutine DTGSY2 (trans, ijob, m, n, a, lda, b, ldb, c, ldc, d, ldd, e,
lde, f, ldf, scale, rdsum, rdscal, iwork, pq, info)
DTGSY2 solves the generalized Sylvester equation (unblocked algorithm).
π Function/Subroutine Documentation
subroutine DTGSY2 (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 rdsum, double precision rdscal, integer, dimension( * ) iwork,
integer pq, integer info)
DTGSY2 solves the generalized Sylvester equation (unblocked algorithm).
π― Purpose
okay bestie, here's the whole point: DTGSY2 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, with real entries. (A, D) and (B, E) must be in generalized 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 solving equation (1) corresponds to solve Z*x = scale*b, where Z is defined as
Z = [ kron(In, A) -kron(B**T, Im) ] (2)
[ kron(In, D) -kron(E**T, Im) ],
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. In the process of solving (1), we solve a number of such systems where Dim(In), Dim(In) = 1 or 2.
If TRANS = 'T', solve the transposed system Z**T*y = scale*b for y, 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 is used to compute an estimate of Dif[(A, D), (B, E)] = sigma_min(Z) using reverse communication with DLACON.
DTGSY2 also (IJOB >= 1) contributes to the computation in DTGSYL of an upper bound on the separation between to matrix pairs. Then the input (A, D), (B, E) are sub-pencils of the matrix pair in DTGSYL. See DTGSYL for details.
πΈ Parameters
TRANSβTRANS is CHARACTER*1.= '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: 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. (DGECON on sub-systems is used.) Not referenced ifTRANS = 'T'.MβM is INTEGER. On entry,Mspecifies the order ofAandD, and the row dimension ofC,F,RandL.NβN is INTEGER. On entry,Nspecifies the order ofBandE, and the column dimension ofC,F,RandL.AβA is DOUBLE PRECISION array, dimension (LDA, M). On entry,Acontains an upper quasi triangular matrix.LDAβLDA is INTEGER. The leading dimension of the matrixA.LDA >= max(1, M).BβB is DOUBLE PRECISION array, dimension (LDB, N). On entry,Bcontains an upper quasi triangular matrix.LDBβLDB is INTEGER. The leading dimension of the matrixB.LDB >= max(1, N).CβC is DOUBLE PRECISION 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 INTEGER. The leading dimension of the matrixC.LDC >= max(1, M).DβD is DOUBLE PRECISION array, dimension (LDD, M). On entry,Dcontains an upper triangular matrix.LDDβLDD is INTEGER. The leading dimension of the matrixD.LDD >= max(1, M).EβE is DOUBLE PRECISION array, dimension (LDE, N). On entry,Econtains an upper triangular matrix.LDEβLDE is INTEGER. The leading dimension of the matrixE.LDE >= max(1, N).FβF is DOUBLE PRECISION 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 INTEGER. The leading dimension of the matrixF.LDF >= max(1, M).SCALEβSCALE is DOUBLE PRECISION. On 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 PRECISION. On entry, the sum of squares of computed contributions to the Dif-estimate under computation byDTGSYL, 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 whenDTGSY2is called byDTGSYL.RDSCALβRDSCAL is DOUBLE PRECISION. On 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 whenDTGSY2is called byDTGSYL.IWORKβIWORK is INTEGER array, dimension (M+N+2).PQβPQ is INTEGER. On exit, the number of subsystems (of size 2-by-2, 4-by-4 and 8-by-8) solved by this routine.INFOβINFO is INTEGER. On exit, ifINFOis set to=0: Successful exit.<0: IfINFO = -i, the i-th argument had an illegal value.>0: The matrix pairs(A, D)and(B, E)have common or very close eigenvalues. so watch out for that >0, bestie β common or very close eigenvalues are the vibe killer here.
π 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
Definition at line 271 of file dtgsy2.f.
πͺ Author
Generated automatically by Doxygen for LAPACK from the source code.
π«Ά final sign-off: this page is from LAPACK Version 3.12.0, footer path /home/abui...RC/dtgsy2.f(3). The page doesn't give a separate date, so I'm not inventing one β periodt. π
β¨
π¦ 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