CTGSY2(3)
π CTGSY2 π
okay so bestie, this is ctgsy2.f(3) from the Library Functions Manual β the header path is /home/abui...RC/ctgsy2.f(3) and we are literally about to make the generalized Sylvester equation make sense. π
β¨
πΈ NAME πΈ
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/ctgsy2.f
β¨ SYNOPSIS β¨
Functions/Subroutines
subroutine CTGSY2 (trans, ijob, m, n, a, lda, b, ldb, c, ldc, d, ldd, e, lde, f, ldf, scale, rdsum, rdscal, info)
CTGSY2 solves the generalized Sylvester equation (unblocked algorithm).
π¦ Function/Subroutine Documentation π¦
subroutine CTGSY2 (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 rdsum, real rdscal, integer info)
CTGSY2 solves the generalized Sylvester equation (unblocked algorithm).
π Purpose π
okay so CTGSY2 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, 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. 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. slay, no overflow era. π
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 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 CLACON.
CTGSY2 also (IJOB >= 1) contributes to the computation in CTGSYL of an upper bound on the separation between to matrix pairs. (yes, the original says βto matrix pairsβ β we keep the typo, itβs canon π) Then the input (A, D), (B, E) are sub-pencils of two matrix pairs in CTGSYL.
π 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: 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. (SGECONon sub-systems is used.)- Not referenced if
TRANS = 'T'.
MβINTEGER- On entry,
Mspecifies the order ofAandD, and the row dimension ofC,F,RandL.
- On entry,
NβINTEGER- On entry,
Nspecifies the order ofBandE, and the column dimension ofC,F,RandL.
- On entry,
AβCOMPLEX array, dimension (LDA, M)- On entry,
Acontains an upper triangular matrix.
- On entry,
LDAβINTEGER- The leading dimension of the matrix
A.LDA >= max(1, M).
- The leading dimension of the matrix
BβCOMPLEX array, dimension (LDB, N)- On entry,
Bcontains an upper triangular matrix.
- On entry,
LDBβINTEGER- The leading dimension of the matrix
B.LDB >= max(1, N).
- The leading dimension of the matrix
CβCOMPLEX array, dimension (LDC, N)- On entry,
Ccontains the right-hand-side of the first matrix equation in (1). - On exit, if
IJOB = 0,Chas been overwritten by the solutionR.
- On entry,
LDCβINTEGER- The leading dimension of the matrix
C.LDC >= max(1, M).
- The leading dimension of the matrix
DβCOMPLEX array, dimension (LDD, M)- On entry,
Dcontains an upper triangular matrix.
- On entry,
LDDβINTEGER- The leading dimension of the matrix
D.LDD >= max(1, M).
- The leading dimension of the matrix
EβCOMPLEX array, dimension (LDE, N)- On entry,
Econtains an upper triangular matrix.
- On entry,
LDEβINTEGER- The leading dimension of the matrix
E.LDE >= max(1, N).
- The leading dimension of the matrix
FβCOMPLEX array, dimension (LDF, N)- On entry,
Fcontains the right-hand-side of the second matrix equation in (1). - On exit, if
IJOB = 0,Fhas been overwritten by the solutionL.
- On entry,
LDFβINTEGER- The leading dimension of the matrix
F.LDF >= max(1, M).
- The leading dimension of the matrix
SCALEβREAL- 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.
- On exit,
RDSUMβREAL- On entry, the sum of squares of computed contributions to the Dif-estimate under computation by
CTGSYL, 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.
- If
TRANS = 'T'RDSUMis not touched. - NOTE:
RDSUMonly makes sense whenCTGSY2is called byCTGSYL.
- On entry, the sum of squares of computed contributions to the Dif-estimate under computation by
RDSCALβREAL- On entry, scaling factor used to prevent overflow in
RDSUM. - On exit,
RDSCALis updated w.r.t. the current contributions inRDSUM. - If
TRANS = 'T',RDSCALis not touched. - NOTE:
RDSCALonly makes sense whenCTGSY2is called byCTGSYL.
- On entry, scaling factor used to prevent overflow in
INFOβINTEGER- On exit, if
INFOis 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.
- On exit, if
π 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 ctgsy2.f.
β Author β
Generated automatically by Doxygen for LAPACK from the source code.
kisses bestie, and thatβs the footer tea: LAPACK Version 3.12.0 with the path /home/abui...RC/ctgsy2.f(3) β thereβs no date on the line, so Iβm 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