SRC/strsyl3.f(3)
π NAME π
okay so this is the SRC/strsyl3.f(3) page from the Library Functions Manual, bestie β¨ and the name is literally SRC/strsyl3.f β that's the whole name, no cap ππ
β¨ SYNOPSIS β¨
π¦ Functions/Subroutines
subroutine strsyl3 (trana, tranb, isgn, m, n, a, lda, b, ldb, c, ldc,
scale, iwork, liwork, swork, ldswork, info)
STRSYL3
π Function/Subroutine Documentation π
subroutine strsyl3 (character trana, character tranb, integer isgn, integer
m, integer n, real, dimension( lda, * ) a, integer lda, real, dimension(
ldb, * ) b, integer ldb, real, dimension( ldc, * ) c, integer ldc, real
scale, integer, dimension( * ) iwork, integer liwork, real, dimension(
ldswork, * ) swork, integer ldswork, integer info)
STRSYL3
πΈ Purpose πΈ
okay so STRSYL3 solves the real Sylvester matrix equation, and it's giving main-character math energy π§β¨:
op(A)*X + X*op(B) = scale*C or
op(A)*X - X*op(B) = scale*C,
where op(A) = A or A**T, and A and B are both upper quasi-triangular. A is M-by-M and B is N-by-N; the right hand side C and the solution X are M-by-N; and scale is an output scale factor, set <= 1 to avoid overflow in X π
A and B must be in Schur canonical form (as returned by SHSEQR), that is, block upper triangular with 1-by-1 and 2-by-2 diagonal blocks; each 2-by-2 diagonal block has its diagonal elements equal and its off-diagonal elements of opposite sign. periodt π
This is the block version of the algorithm. iconic.
π Parameters π
TRANAβTRANA is CHARACTER*1. Specifies the optionop(A):= 'N': op(A) = A(No transpose);= 'T': op(A) = A**T(Transpose);= 'C': op(A) = A**H(Conjugate transpose = Transpose). slay π«TRANBβTRANB is CHARACTER*1. Specifies the optionop(B):= 'N': op(B) = B(No transpose);= 'T': op(B) = B**T(Transpose);= 'C': op(B) = B**H(Conjugate transpose = Transpose). yes bestie πISGNβISGN is INTEGER. Specifies the sign in the equation:= +1: solve op(A)*X + X*op(B) = scale*C;= -1: solve op(A)*X - X*op(B) = scale*C. choose your fighter βοΈMβM is INTEGER. The order of the matrixA, and the number of rows in the matricesXandC.M >= 0. no negative row counts, bestie πNβN is INTEGER. The order of the matrixB, and the number of columns in the matricesXandC.N >= 0. same vibe, columns edition πAβA is REAL array, dimension (LDA,M). The upper quasi-triangular matrixA, in Schur canonical form. she's structured β¨LDAβLDA is INTEGER. The leading dimension of the arrayA.LDA >= max(1,M). respect the leading dimension π«ΆBβB is REAL array, dimension (LDB,N). The upper quasi-triangular matrixB, in Schur canonical form. also structured, also slaying πLDBβLDB is INTEGER. The leading dimension of the arrayB.LDB >= max(1,N). yup yup πCβC is REAL array, dimension (LDC,N). On entry, theM-by-Nright hand side matrixC. On exit,Cis overwritten by the solution matrixX. glow-up moment π₯LDCβLDC is INTEGER. The leading dimension of the arrayC.LDC >= max(1,M). don't forget it bestie πSCALEβSCALE is REAL. The scale factor,scale, set<= 1to avoid overflow inX. safety first, always πIWORKβIWORK is INTEGER array, dimension (MAX(1,LIWORK)). On exit, ifINFO = 0,IWORK(1)returns the optimalLIWORK. cute little integer workspace πLIWORKβ the source text here saysIWORK is INTEGER, and this parameter is the dimension of the arrayIWORK.LIWORK >= ((M + NB - 1) / NB + 1) + ((N + NB - 1) / NB + 1), whereNBis the optimal block size. IfLIWORK = -1, then a workspace query is assumed; the routine only calculates the optimal dimension of theIWORKarray, returns this value as the first entry of theIWORKarray, and no error message related toLIWORKis issued byXERBLA. workspace query realness π«‘SWORKβSWORK is REAL array, dimension (MAX(2, ROWS), MAX(1,COLS)). On exit, ifINFO = 0,SWORK(1)returns the optimal valueROWSandSWORK(2)returns the optimalCOLS. two little integers doing big things π«LDSWORKβLDSWORK is INTEGER.LDSWORK >= MAX(2,ROWS), whereROWS = ((M + NB - 1) / NB + 1)andNBis the optimal block size. IfLDSWORK = -1, then a workspace query is assumed; the routine only calculates the optimal dimensions of theSWORKmatrix, returns these values as the first and second entry of theSWORKmatrix, and no error message relatedLWORKis issued byXERBLA. as the source says, bestie ππINFOβINFO is INTEGER.= 0: successful exit.< 0: ifINFO = -i, thei-th argument had an illegal value.= 1:AandBhave common or very close eigenvalues; perturbed values were used to solve the equation (but the matricesAandBare unchanged). read theINFO, love her π
Definition at line 196 of file strsyl3.f.
π Author π
Generated automatically by Doxygen for LAPACK from the source code.
okay that's the whole page, bestie π«Άπ β this sparkly little sign-off comes from LAPACK, Version 3.12.0, source SRC/strsyl3.f(3); the footer doesn't give a date, so consider this your cute final-boss footer moment periodt β¨ππ
π¦ 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