dblgesylv(3)

๐Ÿ“ฆ
version 1.1.2 ยท 3 versions
, in fedora 43

๐Ÿ’… dblgesylv(3) ๐Ÿ’…

okay bestie, you clicked into the MEPACK page for dblgesylv(3) and honestly? it's giving โœจlinear algebra main character energyโœจ. it's a long one so we're doing this in parts โ€” this is part 1, don't wander off ๐Ÿซถ


๐ŸŽ€ NAME ๐ŸŽ€

  • dblgesylv โ€” Double Precision
  • Double Precision routines for standard Sylvester equations.

๐Ÿฆ‹ SYNOPSIS ๐Ÿฆ‹

Functions

subroutine dla_gesylv (facta, factb, transa, transb, sgn, m, n, a, lda,
    b, ldb, qa, ldqa, qb, ldqb, x, ldx, scale, work, ldwork, info)

Frontend for the solution of Standard Sylvester Equations. ๐Ÿ‘‘

subroutine dla_gesylv2 (facta, factb, transa, transb, sgn, m, n, a, lda,
    b, ldb, qa, ldqa, qb, ldqb, x, ldx, scale, work, ldwork, info)

Frontend for the solution of Standard Sylvester Equations. ๐Ÿ’–

subroutine dla_gesylv2_refine (transa, transb, guess, sgn, m, n, a, lda,
    b, ldb, x, ldx, y, ldy, as, ldas, bs, ldbs, q, ldq, u, ldu, maxit,
    tau, convlog, work, ldwork, info)

Iterative Refinement for the standard Sylvester Equations. ๐Ÿ”

subroutine dla_gesylv_refine (transa, transb, guess, sgn, m, n, a, lda,
    b, ldb, x, ldx, y, ldy, as, ldas, bs, ldbs, q, ldq, u, ldu, maxit,
    tau, convlog, work, ldwork, info)

Iterative Refinement for the standard Sylvester Equations. ๐Ÿ”


๐ŸŒˆ Detailed Description ๐ŸŒˆ

Double Precision routines for standard Sylvester equations. yes bestie, that's literally it โ€” the name is the whole vibe.

This subsection contains the solvers for standard Sylvester equations with general coefficient matrices in double precision arithmetic. The Schur decompositions are computed in double precision with the help of LAPACK. ๐Ÿงฎโœจ


๐Ÿ“š Function Documentation ๐Ÿ“š

subroutine dla_gesylv (... )

Frontend for the solution of Standard Sylvester Equations.

๐Ÿ’ซ Purpose

DLA_GESYLV solves a Sylvester equation of the following forms:

op1(A) * X  +  X * op2(B) = SCALE * Y                              (1)

or

op1(A) * X  -  X * op2(B) = SCALE * Y                              (2)

where A is a M-by-M matrix and B is a N-by-N matrix. The right hand side Y and the solution X are M-by-N matrices. The matrices A and B can be either a general unreduced matrix or an upper Hessenberg form or a (quasi-) upper triangular factor. In the later case QA and QB provide the Schur-vectors of the matrices A and B. ๐Ÿฆ‹

๐ŸŒธ Parameters

  • FACTA โ€” CHARACTER. Tells you how matrix A is handed to you.
    • == 'N': The matrix A is given as a general matrix and its Schur decomposition A = QA*S*QA**T will be computed.
    • == 'F': The matrix A is given as its Schur decomposition in terms of S and QA, form A = QA*S*QA**T.
    • == 'H': The matrix A is given as an upper Hessenberg form and its Schur decomposition A = QA*S*QA**T will be computed.
  • FACTB โ€” CHARACTER. Tells you how matrix B is handed to you.
    • == 'N': The matrix B is given as a general matrix and its Schur decomposition B = QB*R*QB**T will be computed.
    • == 'F': The matrix B is given as its Schur decomposition in terms of R and QB, form B = QB*R*QB**T.
    • == 'H': The matrix B is given as an upper Hessenberg form and its Schur decomposition B = QB*R*QB**T will be computed.
  • TRANSA โ€” CHARACTER. Specifies the form of the system of equations with respect to A:
    • == 'N': op1(A) = A
    • == 'T': op1(A) = A**T
  • TRANSB โ€” CHARACTER. Specifies the form of the system of equations with respect to B:
    • == 'N': op2(B) = B,
    • == 'T': op2(B) = B**T
  • SGN โ€” DOUBLE PRECISION, allowed values: +/-1. Specifies the sign between the two parts of the Sylvester equation. ๐Ÿ’…
    • = 1 : Solve Equation (1)
    • == -1: Solve Equation (2)
  • M โ€” INTEGER. The order of the matrices A and C. M >= 0.
  • N โ€” INTEGER. The order of the matrices B and D. N >= 0.
  • A โ€” DOUBLE PRECISION array, dimension (LDA,M).
    • If FACTA == , the matrix A is a general matrix and it is overwritten with its schur decomposition S.
    • If FACTA == , the matrix A contains its (quasi-) upper triangular matrix S being the Schur decomposition of A.
    • If FACTA == , the matrix A is an upper Hessenberg matrix and it is overwritten with its schur decomposition S.
not me noticing the character after FACTA == is justโ€ฆ missing in the source, bestie ๐Ÿ˜ญ that's literally how the page ships, so that's how it stays.
  • LDA โ€” INTEGER. The leading dimension of the array A. LDA >= max(1,M).
  • B โ€” DOUBLE PRECISION array, dimension (LDB,N).
    • If FACTB == , the matrix B is a general matrix and it is overwritten with its schur decomposition R.
    • If FACTB == , the matrix B contains its (quasi-) upper triangular matrix R being the Schur decomposition of B.
    • If FACTB == , the matrix B is an upper Hessenberg matrix and it is overwritten with its schur decomposition R.
  • LDB โ€” INTEGER. The leading dimension of the array B. LDB >= max(1,N).
  • QA โ€” DOUBLE PRECISION array, dimension (LDQA,M).
    • If FACTA == , the matrix QA is an empty M-by-M matrix on input and contains the Schur vectors of A on output.
    • If FACTA == , the matrix QA contains the Schur vectors of A.
    • If FACTA == , the matrix QA is an empty M-by-M matrix on input and contains the Schur vectors of A on output.
  • LDQA โ€” INTEGER. The leading dimension of the array QA. LDQA >= max(1,M).
  • QB โ€” DOUBLE PRECISION array, dimension (LDQB,N).
    • If FACTB == , the matrix QB is an empty N-by-N matrix on input and contains the Schur vectors of B on output.
    • If FACTB == , the matrix QB contains the Schur vectors of B.
    • If FACTB == , the matrix QB is an empty N-by-N matrix on input and contains the Schur vectors of B on output.
  • LDQB โ€” INTEGER. The leading dimension of the array QB. LDQB >= max(1,N).
  • X โ€” DOUBLE PRECISION array, dimension (LDX,N).
    • On input, the matrix X contains the right hand side Y.
    • On output, the matrix X contains the solution of Equation (1) or (2).
    • Right hand side Y and the solution X are M-by-N matrices.
  • LDX โ€” INTEGER. The leading dimension of the array X. LDX >= max(1,M).
  • SCALE โ€” DOUBLE PRECISION. SCALE is a scaling factor to prevent the overflow in the result. If INFO == 0 then SCALE is 1.0D0 otherwise if one of the inner systems could not be solved correctly, 0 < SCALE <= 1 holds true. ๐Ÿซถ
  • WORK โ€” DOUBLE PRECISION array, dimension (MAX(1,LDWORK)). Workspace for the algorithm. The optmimal workspace is given either by \ref mepack_memory_frontend or a previous call to the this routine with LDWORK === -1.
  • LDWORK โ€” INTEGER. Size of the workspace for the algorithm. This can be determined by a call \ref mepack_memory_frontend. Alternatively, if LDWORK == -1 on input, the subroutine will return the required size of the workspace in LDWORK without performing any computations. ๐Ÿง 
  • INFO โ€” INTEGER.
    • == 0: successful exit ๐ŸŽ‰
    • = 1: DHGEES failed
    • = 2: DLA_SORT_EV failed
    • = 3: DLA_TRLYAP_DAG failed
    • < 0: if INFO = -i, the i-th argument had an illegal value

๐Ÿ‘€ See also

  • DLA_TRSYLV_L3
  • DLA_TRSYLV_L3_2S
  • DLA_TRSYLV_DAG
  • DLA_TRSYLV_L2_UNOPT
  • DLA_TRSYLV_L2
  • DLA_TRSYLV_L2_REORDER
  • DLA_TRSYLV_L2_LOCAL_COPY
  • DLA_TRSYLV_L2_LOCAL_COPY_32
  • DLA_TRSYLV_L2_LOCAL_COPY_64
  • DLA_TRSYLV_L2_LOCAL_COPY_96
  • DLA_TRSYLV_L2_LOCAL_COPY_128

โœ๏ธ Author

Martin Koehler, MPI Magdeburg

๐Ÿ“… Date

October 2025

๐Ÿ“ Definition

Definition at line 250 of file dla_gesylv.f90.


subroutine dla_gesylv2 (... )

Frontend for the solution of Standard Sylvester Equations.

๐Ÿ’ซ Purpose

DLA_GESYLV2 solves a Sylvester equation of the following forms:

op1(A) * X * op2(B) +  X  = SCALE * Y                              (1)

or

op1(A) * X * op2(B) -  X  = SCALE * Y                              (2)

where A is a M-by-M matrix and B is a N-by-N matrix. The right hand side Y and the solution X are M-by-N matrices. The matrices A and B can be either a general unreduced matrix or an upper Hessenberg form or a (quasi-) upper triangular factor. In the later case QA and QB provide the Schur-vectors of the matrices A and B. ๐Ÿฆ‹

๐ŸŒธ Parameters

  • FACTA
  • FACTA โ€” CHARACTER ๐Ÿ’… okay so this one tells you how the matrix A is given, aka A's whole origin story.
    • == 'N': The matrix A is given as a general matrix and its Schur decomposition A = QA*S*QA**T will be computed. ๐Ÿซถ
    • == 'F': The matrix A is given as its Schur decomposition in terms of S and QA form A = QA*S*QA**T.
    • == 'H': The matrix A is given as an upper Hessenberg form and its Schur decomposition A = QA*S*QA**T will be computed.
  • FACTB โ€” CHARACTER โœจ same energy as FACTA but for the matrix B, bestie.
    • == 'N': The matrix B is given as a general matrix and its Schur decomposition B = QB*R*QB**T will be computed.
    • == 'F': The matrix B is given as its Schur decomposition in terms of R and QB form B = QB*R*QB**T.
    • == 'H': The matrix B is given as an upper Hessenberg form and its Schur decomposition B = QB*R*QB**T will be computed.
  • TRANSA โ€” CHARACTER ๐ŸŒธ Specifies the form of the system of equations with respect to A:
    • == 'N': op1(A) = A
    • == 'T': op1(A) = A**T
  • TRANSB โ€” CHARACTER ๐Ÿฆ‹ Specifies the form of the system of equations with respect to B:
    • == 'N': op2(B) = B,
    • == 'T': op2(B) = B**T
  • SGN โ€” DOUBLE PRECISION, allowed values: +/-1 ๐ŸŽ€ Specifies the sign between the two parts of the Sylvester equation, like which side of the relationship we're on.
    • = 1 : Solve Equation (1)
    • == -1: Solve Equation (2)
  • M โ€” INTEGER ๐Ÿ’œ The order of the matrices A and C. M >= 0.
  • N โ€” INTEGER ๐Ÿ’œ The order of the matrices B and D. N >= 0.
  • A โ€” DOUBLE PRECISION array, dimension (LDA,M) โญ
    • If FACTA == , the matrix A is a general matrix and it is overwritten with its schur decomposition S.
    • If FACTA == , the matrix A contains its (quasi-) upper triangular matrix S being the Schur decomposition of A.
    • If FACTA == , the matrix A is an upper Hessenberg matrix and it is overwritten with its schur decomposition S.
  • LDA โ€” INTEGER ๐Ÿ’… The leading dimension of the array A. LDA >= max(1,M).
  • B โ€” DOUBLE PRECISION array, dimension (LDB,N) โญ
    • If FACTB == , the matrix B is a general matrix and it is overwritten with its schur decomposition R.
    • If FACTB == , the matrix B contains its (quasi-) upper triangular matrix R being the Schur decomposition of B.
    • If FACTB == , the matrix B is an upper Hessenberg matrix and it is overwritten with its schur decomposition R.
  • LDB โ€” INTEGER ๐Ÿ’… The leading dimension of the array B. LDB >= max(1,N).
  • QA โ€” DOUBLE PRECISION array, dimension (LDQA,M) ๐ŸŒˆ
    • If FACTA == , the matrix QA is an empty M-by-M matrix on input and contains the Schur vectors of A on output.
    • If FACTA == , the matrix QA contains the Schur vectors of A.
    • If FACTA == , the matrix QA is an empty M-by-M matrix on input and contains the Schur vectors of A on output.
  • LDQA โ€” INTEGER ๐Ÿ’… The leading dimension of the array QA. LDQA >= max(1,M).
  • QB โ€” DOUBLE PRECISION array, dimension (LDQB,N) ๐ŸŒˆ
    • If FACTB == , the matrix QB is an empty N-by-N matrix on input and contains the Schur vectors of B on output.
    • If FACTB == , the matrix QB contains the Schur vectors of B.
    • If FACTB == , the matrix QB is an empty N-by-N matrix on input and contains the Schur vectors of B on output.
  • LDQB โ€” INTEGER ๐Ÿ’… The leading dimension of the array QB. LDQB >= max(1,N).
  • X โ€” DOUBLE PRECISION array, dimension (LDX,N) ๐Ÿ‘‘ On input, the matrix X contains the right hand side Y. On output, the matrix X contains the solution of Equation (1) or (2). Right hand side Y and the solution X are M-by-N matrices.
  • LDX โ€” INTEGER ๐Ÿ’… The leading dimension of the array X. LDX >= max(1,M).
  • SCALE โ€” DOUBLE PRECISION ๐Ÿ“ SCALE is a scaling factor to prevent the overflow in the result. If INFO == 0 then SCALE is 1.0D0 otherwise if one of the inner systems could not be solved correctly, 0 < SCALE <= 1 holds true.
  • WORK โ€” DOUBLE PRECISION array, dimension (MAX(1,LDWORK)) ๐Ÿงš Workspace for the algorithm. The optmimal workspace is given either by \ref mepack_memory_frontend or a previous call to the this routine with LDWORK === -1.
  • LDWORK โ€” INTEGER ๐ŸŒธ Size of the workspace for the algorithm. This can be determined by a call \ref mepack_memory_frontend. Alternatively, if LDWORK == -1 on input the subroutine will return the required size of the workspace in LDWORK without performing any computations.
  • INFO โ€” INTEGER ๐Ÿ’€ the receipts, bestie:
    • == 0: successful exit โœจ
    • = 1: DHGEES failed
    • = 2: DLA_SORT_EV failed
    • = 3: DLA_TRLYAP_DAG failed
    • < 0: if INFO = -i, the i-th argument had an illegal value

๐Ÿซถ See also ๐Ÿซถ

  • DLA_TRSYLV2_L3
  • DLA_TRSYLV2_L3_2S
  • DLA_TRSYLV2_DAG
  • DLA_TRSYLV2_L2_UNOPT
  • DLA_TRSYLV2_L2
  • DLA_TRSYLV2_L2_REORDER
  • DLA_TRSYLV2_L2_LOCAL_COPY
  • DLA_TRSYLV2_L2_LOCAL_COPY_32
  • DLA_TRSYLV2_L2_LOCAL_COPY_64
  • DLA_TRSYLV2_L2_LOCAL_COPY_96
  • DLA_TRSYLV2_L2_LOCAL_COPY_128

๐Ÿ‘‘ Author ๐Ÿ‘‘

Martin Koehler, MPI Magdeburg

๐ŸŒธ Date ๐ŸŒธ

October 2025

Definition at line 250 of file dla_gesylv2.f90.


๐Ÿ’– subroutine dla_gesylv2_refine ๐Ÿ’–

subroutine dla_gesylv2_refine (character, dimension(1) transa, character,
    dimension(1) transb, character, dimension(1) guess, double precision
    sgn, integer m, integer n, double precision, dimension(lda, *) a,
    integer lda, double precision, dimension(ldb, *) b, integer ldb, double
    precision, dimension ( ldx , * ) x, integer ldx, double precision,
    dimension(ldy, *) y, integer ldy, double precision, dimension(ldas, *)
    as, integer ldas, double precision, dimension(ldbs,*) bs, integer ldbs,
    double precision, dimension(ldq, *) q, integer ldq, double precision,
    dimension(ldu, *) u, integer ldu, integer maxit, double precision tau,
    double precision, dimension(*) convlog, double precision, dimension(*)
    work, integer ldwork, integer info)

Iterative Refinement for the Standard Sylvester Equations.

โœจ Purpose โœจ

DLA_GESYLV2_REFINE solves a Sylvester equation of the following forms

op1(A) * X * op2(B)  +  X = Y                              (1)

or

op1(A) * X * op2(B)  -  X = Y                              (2)

where A is a M-by-M matrix and B is a N-by-N matrix using iterative refinement. ๐ŸŒ€ The right hand side Y and the solution X are M-by-N matrices. The matrix A and B need to be given in the original form as well as in their Schur decomposition since both are required in the iterative refinement procedure. Like, both fits, both serve. No shortcuts. ๐Ÿ’…

๐ŸŽ€ Parameters ๐ŸŽ€

  • TRANSA โ€” CHARACTER ๐ŸŒธ Specifies the form of the system of equations with respect to A:
    • == 'N': op1(A) = A
    • == 'T': op1(A) = A**T
  • TRANSB โ€” CHARACTER ๐ŸŒธ Specifies the form of the system of equations with respect to B:
    • == 'N': op2(B) = B,
    • == 'T': op2(B) = B**T
  • GUESS โ€” CHARACTER โœจ Specifies whether X contains an initial guess or nor not.
    • = 'I': X contains an initial guess
    • = 'N': No initial guess, X is set to zero at the begin of the iteration.
  • SGN โ€” DOUBLE PRECISION, allowed values: +/-1 ๐ŸŽ€ Specifies the sign between both terms.
  • M โ€” INTEGER ๐Ÿ’œ The order of the matrix A. M >= 0.
  • N โ€” INTEGER ๐Ÿ’œ The order of the matrix B. N >= 0.
  • A โ€” DOUBLE PRECISION array, dimension (LDA,M) โญ The array A contains the original matrix A defining the eqaution.
  • LDA โ€” INTEGER ๐Ÿ’… The leading dimension of the array A. LDA >= max(1,M).
  • B โ€” DOUBLE PRECISION array, dimension (LDB,N) โญ The array B contains the original matrix B defining the eqaution.
  • LDB โ€” INTEGER ๐Ÿ’… The leading dimension of the array B. LDB >= max(1,N).
  • X โ€” DOUBLE PRECISION array, dimension (LDX,N) ๐Ÿ‘‘ On input, the array X contains the initial guess, if GUESS = 'I'. On output, the array X contains the solution X.
  • LDX โ€” INTEGER ๐Ÿ’… The leading dimension of the array X. LDX >= max(1,M).
  • Y โ€” DOUBLE PRECISION array, dimension (LDY,N) ๐Ÿฆ‹ On input, the array Y contains the right hand side Y. The array stays unchanged during the iteration. (iconic behaviour honestly, it just sits there and minds its business โœจ)
  • LDY โ€” INTEGER ๐Ÿ’… The leading dimension of the array Y. LDY >= max(1,M).
  • AS โ€” DOUBLE PRECISION array, dimension (LDAS,M) ๐ŸŒˆ The array AS contains the Schur decomposition of the A.
  • LDAS
  • LDAS โ€” is INTEGER. The leading dimension of the array AS. LDAS >= max(1,M). ๐Ÿ’…
  • BS โ€” is DOUBLE PRECISION array, dimension (LDBS,N). The array BS contains the Schur decomposition of B. ๐Ÿฆ‹
  • LDBS โ€” is INTEGER. The leading dimension of the array BS. LDBS >= max(1,N). ๐Ÿ’–
  • Q โ€” is DOUBLE PRECISION array, dimension (LDQ,M). The array Q contains the Schur vectors of A as returned by DGEES. โœจ
  • LDQ โ€” is INTEGER. The leading dimension of the array Q. LDQ >= max(1,M). ๐ŸŽ€
  • U โ€” is DOUBLE PRECISION array, dimension (LDU,N). The array U contains the Schur vectors of B as returned by DGEES. ๐ŸŒธ
  • LDU โ€” is INTEGER. The leading dimension of the array U. LDU >= max(1,N). ๐Ÿซถ
  • MAXIT โ€” is INTEGER. On input, MAXIT contains the maximum number of iteration that are performed, 2 <= MAXIT <= 100. On exit, MAXIT contains the number of iteration steps taken by the algorithm. ๐Ÿ‘‘
  • TAU โ€” is DOUBLE PRECISION. On input, TAU contains the additional security factor for the stopping criterion, typical values are 0.1. On exit, TAU contains the last relative residual when the stopping criterion got valid. ๐Ÿ”ฅ
  • CONVLOG โ€” is DOUBLE PRECISION array, dimension (MAXIT). The CONVLOG array contains the convergence history of the iterative refinement. CONVLOG(I) contains the maximum relative residual before it is solved for the I-th time. ๐Ÿ’€
  • WORK โ€” is DOUBLE PRECISION array, dimension (MAX(1,LDWORK)). Workspace for the algorithm. The optimal workspace is returned in LDWORK, if LDWORK == -1 on input. In this case no computations are performed. ๐Ÿ™ˆ
  • LDWORK โ€” is INTEGER. If LDWORK == -1 the subroutine will return the required size of the workspace in LDWORK on exit. No computations are performed and none of the arrays are referenced. โญ
  • INFO โ€” is INTEGER. The vibes:
    • == 0: Success ๐ŸŽ‰
    • > 0: Iteration failed in step INFO ๐Ÿ˜ญ
    • < 0: if INFO = -i, the i-th argument had an illegal value ๐Ÿ’€
    • = -50: Some of the internal settings like NB,... are incorrect. ๐Ÿšจ

๐ŸŒˆ See also ๐ŸŒˆ

  • DLA_TRSYLV2_DAG
  • DLA_TRSYLV2_LEVEL3
  • DLA_TRSYLV2_L3_2S
  • DLA_TRSYLV2_L2_UNOPT
  • DLA_TRSYLV2_L2
  • DLA_TRSYLV2_L2_REORDER
  • DLA_TRSYLV2_L2_LOCAL_COPY_32
  • DLA_TRSYLV2_L2_LOCAL_COPY_64
  • DLA_TRSYLV2_L2_LOCAL_COPY_96
  • DLA_TRSYLV2_L2_LOCAL_COPY_128
  • DLA_TRSYLV2_L2_LOCAL_COPY

๐ŸŒธ Author ๐ŸŒธ

Martin Koehler, MPI Magdeburg

๐ŸŒธ Date ๐ŸŒธ

October 2025

Definition at line 271 of file dla_gesylv2_refine.f90.


๐Ÿ’– subroutine dla_gesylv_refine ๐Ÿ’–

   subroutine dla_gesylv_refine (character, dimension(1) transa, character,
       dimension(1) transb, character, dimension(1) guess, double precision
       sgn, integer m, integer n, double precision, dimension(lda, *) a,
       integer lda, double precision, dimension(ldb, *) b, integer ldb, double
       precision, dimension ( ldx , * ) x, integer ldx, double precision,
       dimension(ldy, *) y, integer ldy, double precision, dimension(ldas, *)
       as, integer ldas, double precision, dimension(ldbs,*) bs, integer ldbs,
       double precision, dimension(ldq, *) q, integer ldq, double precision,
       dimension(ldu, *) u, integer ldu, integer maxit, double precision tau,
       double precision, dimension(*) convlog, double precision, dimension(*)
       work, integer ldwork, integer info)

Iterative Refinement for the standard Sylvester Equations.

โœจ Purpose โœจ

DLA_GESYLV_REFINE solves a Sylvester equation of the following forms

op1(A) * X  +  X * op2(B) = Y                              (1)

or

op1(A) * X  -  X * op2(B) = Y                              (2)

where A is a M-by-M matrix and B is a N-by-N matrix using iterative refinement. The right hand side Y and the solution X are M-by-N matrices. The matrix A and B need to be given in the original form as well as in their Schur decomposition since both are required in the iterative refinement procedure. ๐ŸŒˆ

๐ŸŽ€ Parameters ๐ŸŽ€

  • TRANSA โ€” is CHARACTER. Specifies the form of the system of equations with respect to A:
    • == 'N': op1(A) = A
    • == 'T': op1(A) = A**T
  • TRANSB โ€” is CHARACTER. Specifies the form of the system of equations with respect to B:
    • == 'N': op2(B) = B,
    • == 'T': op2(B) = B**T
  • GUESS โ€” is CHARACTER. Specifies whether X contains an initial guess or not.
    • = 'I': X contains an initial guess
    • = 'N': No initial guess, X is set to zero at the begin of the iteration.
  • SGN โ€” is DOUBLE PRECISION, allowed values: +/-1. Specifies the sign between both terms.
  • M โ€” is INTEGER. The order of the matrix A. M >= 0.
  • N โ€” is INTEGER. The order of the matrix B. N >= 0.
  • A โ€” is DOUBLE PRECISION array, dimension (LDA,M). The array A contains the original matrix A defining the equation.
  • LDA โ€” is INTEGER. The leading dimension of the array A. LDA >= max(1,M).
  • B โ€” is DOUBLE PRECISION array, dimension (LDB,N). The array B contains the original matrix B defining the equation.
  • LDB โ€” is INTEGER. The leading dimension of the array B. LDB >= max(1,N).
  • X โ€” is DOUBLE PRECISION array, dimension (LDX,N). On input, the array X contains the initial guess, if GUESS = 'I'. On output, the array X contains the solution X.
  • LDX โ€” is INTEGER. The leading dimension of the array X. LDX >= max(1,M).
  • Y โ€” is DOUBLE PRECISION array, dimension (LDY,N). On input, the array Y contains the right hand side Y. The array stays unchanged during the iteration.
  • LDY โ€” is INTEGER. The leading dimension of the array Y. LDY >= max(1,M).
  • AS โ€” is DOUBLE PRECISION array, dimension (LDAS,M). The array AS contains the Schur decomposition of A.
  • LDAS โ€” is INTEGER. The leading dimension of the array AS. LDAS >= max(1,M).
  • BS โ€” is DOUBLE PRECISION array, dimension (LDBS,N). The array BS contains the Schur decomposition of B.
  • LDBS โ€” is INTEGER. The leading dimension of the array BS. LDBS >= max(1,N).
  • Q โ€” is DOUBLE PRECISION array, dimension (LDQ,M). The array Q contains the Schur vectors of A as returned by DGEES.
  • LDQ โ€” is INTEGER. The leading dimension of the array Q. LDQ >= max(1,M).
  • U โ€” is DOUBLE PRECISION array, dimension (LDU,N). The array U contains the Schur vectors of B as returned by DGEES.
  • LDU โ€” is INTEGER. The leading dimension of the array U. LDU >= max(1,N).
  • MAXIT โ€” is INTEGER. On input, MAXIT contains the maximum number of iteration that are performed, 2 <= MAXIT <= 100. On exit, MAXIT contains the number of iteration steps taken by the algorithm.
  • TAU โ€” is DOUBLE PRECISION. On input, TAU contains the additional security factor for the stopping criterion, typical values are 0.1. On exit, TAU contains the last relative residual when the stopping criterion got valid.
  • CONVLOG โ€” is DOUBLE PRECISION array, dimension (MAXIT). The CONVLOG array contains the convergence history of the iterative refinement. CONVLOG(I) contains the maximum relative residual before it is solved for the I-th time.
  • WORK โ€” is DOUBLE PRECISION array, dimension (MAX(1,LDWORK)). Workspace for the algorithm. The optimal workspace is returned in LDWORK, if LDWORK == -1 on input. In this case no computations are performed.
  • LDWORK โ€” is INTEGER. If LDWORK == -1 the subroutine will return the required size of the workspace in LDWORK on exit. No computations are performed and none of the arrays are referenced.
  • INFO โ€” is INTEGER. The tea:
    • == 0: Success ๐ŸŽ‰
    • > 0: Iteration failed in step INFO ๐Ÿ˜ญ
    • < 0: if INFO = -i, the i-th argument had an illegal value ๐Ÿ’€
    • = -50: Some of the internal settings like NB,... are incorrect. ๐Ÿšจ

๐ŸŒˆ See also ๐ŸŒˆ

  • DLA_TRSYLV_DAG
  • DLA_TRSYLV_LEVEL3
  • DLA_TRSYLV_L3_2S
  • DLA_TRSYLV_L2_UNOPT
  • DLA_TRSYLV_L2
  • DLA_TRSYLV_L2_REORDER
  • DLA_TRSYLV_L2_LOCAL_COPY_32
  • DLA_TRSYLV_L2_LOCAL_COPY_64
  • DLA_TRSYLV_L2_LOCAL_COPY_96
  • DLA_TRSYLV_L2_LOCAL_COPY_128
  • DLA_TRSYLV_L2_LOCAL_COPY

๐ŸŒธ Author ๐ŸŒธ

Martin Koehler, MPI Magdeburg

๐ŸŒธ Date ๐ŸŒธ

October 2025

Definition at line 272 of file dla_gesylv_refine.f90.

๐ŸŒธ Author ๐ŸŒธ

Generated automatically by Doxygen for MEPACK from the source code.

๐Ÿซถ And that's the whole page, bestie! Version 1.1.2, Thu Oct 9 2025 00:00:00, page dblgesylv(3). Stay iconic. ๐Ÿ’…โœจ
๐Ÿ“ฆ where this page comes from