trsyl(3)
π¦ trsyl(3) β Library Functions Manual
Okay bestie, buckle up β this is the Library Functions Manual page for trsyl, and it's giving "four subroutines, one very iconic equation" energy. π
πΈ NAME πΈ
trsyl β trsyl: the Sylvester equation solver. No cap, that's literally the whole name. π
β¨ SYNOPSIS β¨
π«Ά Functions
subroutine ctrsyl (trana, tranb, isgn, m, n, a, lda, b, ldb, c, ldc, scale, info)β the complex one,CTRSYLπsubroutine dtrsyl (trana, tranb, isgn, m, n, a, lda, b, ldb, c, ldc, scale, info)β the double precision one,DTRSYLβ¨subroutine strsyl (trana, tranb, isgn, m, n, a, lda, b, ldb, c, ldc, scale, info)β the single precision real one,STRSYLπΈsubroutine ztrsyl (trana, tranb, isgn, m, n, a, lda, b, ldb, c, ldc, scale, info)β the double complex one,ZTRSYLπ¦
π Detailed Description π
Lowkey there's no extra prose here in the original β the real tea all lives down in the function documentation. Keep scrolling, bestie. π
π Function Documentation π
π
ctrsyl
subroutine ctrsyl (character trana, character tranb, integer isgn, integer m, integer n, complex, dimension( lda, * ) a, integer lda, complex, dimension( ldb, * ) b, integer ldb, complex, dimension( ldc, * ) c, integer ldc, real scale, integer info)
CTRSYL β the complex main character. π§
π Purpose
CTRSYL solves the complex Sylvester matrix equation:
op(A)*X + X*op(B) = scale*C or
op(A)*X - X*op(B) = scale*C,
where op(A) = A or A**H, and A and B are both upper 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. π«Ά
π Parameters
TRANAβTRANAisCHARACTER*1. Specifies the optionop(A):= 'N':op(A) = A(No transpose)= 'C':op(A) = A**H(Conjugate transpose)
TRANBβTRANBisCHARACTER*1. Specifies the optionop(B):= 'N':op(B) = B(No transpose)= 'C':op(B) = B**H(Conjugate transpose)
ISGNβISGNisINTEGER. Specifies the sign in the equation:= +1: solveop(A)*X + X*op(B) = scale*C= -1: solveop(A)*X - X*op(B) = scale*C
MβMisINTEGER. The order of the matrixA, and the number of rows in the matricesXandC.M >= 0.NβNisINTEGER. The order of the matrixB, and the number of columns in the matricesXandC.N >= 0.AβAisCOMPLEXarray, dimension(LDA,M). The upper triangular matrixA.LDAβLDAisINTEGER. The leading dimension of the arrayA.LDA >= max(1,M).BβBisCOMPLEXarray, dimension(LDB,N). The upper triangular matrixB.LDBβLDBisINTEGER. The leading dimension of the arrayB.LDB >= max(1,N).CβCisCOMPLEXarray, dimension(LDC,N). On entry, theM-by-Nright hand side matrixC. On exit,Cis overwritten by the solution matrixX. π₯LDCβLDCisINTEGER. The leading dimension of the arrayC.LDC >= max(1,M)SCALEβSCALEisREAL. The scale factor,scale, set<= 1to avoid overflow inX.INFOβINFOisINTEGER:= 0: successful exit π< 0: ifINFO = -i, the i-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).
π Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 155 of file ctrsyl.f.
π¦ dtrsyl
subroutine dtrsyl (character trana, character tranb, integer isgn, 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 scale, integer info)
DTRSYL β double precision, double the slay. π
π Purpose
DTRSYL solves the real Sylvester matrix equation:
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. β¨
Heads up bestie βAandBmust be in Schur canonical form (as returned byDHSEQR), 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. Not optional, fr fr. π
π Parameters
TRANAβTRANAisCHARACTER*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)
TRANBβTRANBisCHARACTER*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)
ISGNβISGNisINTEGER. Specifies the sign in the equation:= +1: solveop(A)*X + X*op(B) = scale*C= -1: solveop(A)*X - X*op(B) = scale*C
MβMisINTEGER. The order of the matrixA, and the number of rows in the matricesXandC.M >= 0.NβNisINTEGER. The order of the matrixB, and the number of columns in the matricesXandC.N >= 0.AβAisDOUBLE PRECISIONarray, dimension(LDA,M). The upper quasi-triangular matrixA, in Schur canonical form.LDAβLDAisINTEGER. The leading dimension of the arrayA.LDA >= max(1,M).BβBisDOUBLE PRECISIONarray, dimension(LDB,N). The upper quasi-triangular matrixB, in Schur canonical form.LDBβLDBisINTEGER. The leading dimension of the arrayB.LDB >= max(1,N).CβCisDOUBLE PRECISIONarray, dimension(LDC,N). On entry, theM-by-Nright hand side matrixC. On exit,Cis overwritten by the solution matrixX. π₯LDCβLDCisINTEGER. The leading dimension of the arrayC.LDC >= max(1,M)SCALEβSCALEisDOUBLE PRECISION. The scale factor,scale, set<= 1to avoid overflow inX.INFOβINFOisINTEGER:= 0: successful exit π< 0: ifINFO = -i, the i-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).
π Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 162 of file dtrsyl.f.
πΈ strsyl
subroutine strsyl (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 info)
STRSYL β single precision, still full of attitude. π
π Purpose
STRSYL solves the real Sylvester matrix equation:
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. β
Same warning as above, bestie βAandBmust be in Schur canonical form (as returned bySHSEQR), 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. π
π Parameters
TRANAβTRANAisCHARACTER*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)
TRANBβTRANBisCHARACTER*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)
ISGNβISGNisINTEGER. Specifies the sign in the equation:= +1: solveop(A)*X + X*op(B) = scale*C= -1: solveop(A)*X - X*op(B) = scale*C
MβMisINTEGER. The order of the matrixA, and the number of rows in the matricesXandC.M >= 0.NβNisINTEGER. The order of the matrixB, and the number of columns in the matricesXandC.N >= 0.AβAisREALarray, dimension(LDA,M). The upper quasi-triangular matrixA, in Schur canonical form.LDAβLDAisINTEGER. The leading dimension of the arrayA.LDA >= max(1,M).BβBisREALarray, dimension(LDB,N). The upper quasi-triangular matrixB, in Schur canonical form.LDBβLDBisINTEGER. The leading dimension of the arrayB.LDB >= max(1,N).CβCisREALarray, dimension(LDC,N). On entry, theM-by-Nright hand side matrixC. On exit,Cis overwritten by the solution matrixX. π₯LDCβLDCβINTEGER, the leading dimension of the arrayC. Gotta beLDC >= max(1,M), no cap πSCALEβREAL, the scale factor,scale, set<= 1to avoid overflow inX. Sheβs literally the safety rail π«ΆINFOβINTEGER, the exit-status icon:= 0: successful exit, slay β¨< 0: ifINFO = -i, thei-th argument had an illegal value, oop π= 1:AandBhave common or very close eigenvalues; perturbed values were used to solve the equation (but the matricesAandBare unchanged). Not me calling out the math drama π
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
π Definition at line 162 of file strsyl.f.
π ztrsyl β the complex*16 twin has entered the chat π
subroutine ztrsyl (character trana, character tranb, integer isgn, 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, double precision scale, integer info)
ZTRSYL β yes, the uppercase one, sheβs iconic π
π Purpose π
okay so ZTRSYL solves the complex Sylvester matrix equation:
op(A)*X + X*op(B) = scale*C or
op(A)*X - X*op(B) = scale*C,
where op(A) = A or A**H, and A and B are both upper 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. Cute, dangerous, iconic π¦
πΈ Parameters πΈ
TRANAβTRANAisCHARACTER*1, and she specifies the optionop(A):= 'N':op(A) = A(No transpose)= 'C':op(A) = A**H(Conjugate transpose)
TRANBβTRANBisCHARACTER*1, and she specifies the optionop(B):= 'N':op(B) = B(No transpose)= 'C':op(B) = B**H(Conjugate transpose)
ISGNβISGNisINTEGER, and she specifies the sign in the equation:= +1: solveop(A)*X + X*op(B) = scale*C= -1: solveop(A)*X - X*op(B) = scale*C
MβMisINTEGER, the order of the matrixA, and the number of rows in the matricesXandC.M >= 0.NβNisINTEGER, the order of the matrixB, and the number of columns in the matricesXandC.N >= 0.AβAisCOMPLEX*16array, dimension(LDA,M), the upper triangular matrixA.LDAβLDAisINTEGER, the leading dimension of the arrayA.LDA >= max(1,M).BβBisCOMPLEX*16array, dimension(LDB,N), the upper triangular matrixB.LDBβLDBisINTEGER, the leading dimension of the arrayB.LDB >= max(1,N).CβCisCOMPLEX*16array, dimension(LDC,N). On entry, theM-by-Nright hand side matrixC. On exit,Cis overwritten by the solution matrixX.LDCβLDCisINTEGER, the leading dimension of the arrayC.LDC >= max(1,M).SCALEβSCALEisDOUBLE PRECISION, the scale factor,scale, set<= 1to avoid overflow inX.INFOβINFOisINTEGER, the exit-status icon:= 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)
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
π Definition at line 155 of file ztrsyl.f.
π§ Page Author π§
Generated automatically by Doxygen for LAPACK from the source code.
π thatβs the tea, bestie β this page is trsyl(3) from LAPACK Version 3.12.0, auto-generated by Doxygen from the source code. The footer didnβt give us a date, so weβre just gonna vibe with the version, 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