|
fortran-lapack
|
Nonsymmetric eigenproblem components: Schur factorization, eigenvectors, reordering and condition numbers. More...
Functions/Subroutines | |
| pure subroutine, public | la_slaein (rightv, noinit, n, h, ldh, wr, wi, vr, vi, b, ldb, work, eps3, smlnum, bignum, info) |
| SLAEIN: uses inverse iteration to find a right or left eigenvector corresponding to the eigenvalue (WR,WI) of a real upper Hessenberg matrix H. | |
| pure subroutine, public | la_dlaein (rightv, noinit, n, h, ldh, wr, wi, vr, vi, b, ldb, work, eps3, smlnum, bignum, info) |
| DLAEIN: uses inverse iteration to find a right or left eigenvector corresponding to the eigenvalue (WR,WI) of a real upper Hessenberg matrix H. | |
| pure subroutine, public | la_qlaein (rightv, noinit, n, h, ldh, wr, wi, vr, vi, b, ldb, work, eps3, smlnum, bignum, info) |
| QLAEIN: uses inverse iteration to find a right or left eigenvector corresponding to the eigenvalue (WR,WI) of a real upper Hessenberg matrix H. | |
| pure subroutine, public | la_strevc (side, howmny, select, n, t, ldt, vl, ldvl, vr, ldvr, mm, m, work, info) |
| STREVC: computes some or all of the right and/or left eigenvectors of a real upper quasi-triangular matrix T. Matrices of this type are produced by the Schur factorization of a real general matrix: A = Q*T*Q**T, as computed by SHSEQR. The right eigenvector x and the left eigenvector y of T corresponding to an eigenvalue w are defined by: T*x = w*x, (y**H)*T = w*(y**H) where y**H denotes the conjugate transpose of y. The eigenvalues are not input to this routine, but are read directly from the diagonal blocks of T. This routine returns the matrices X and/or Y of right and left eigenvectors of T, or the products Q*X and/or Q*Y, where Q is an input matrix. If Q is the orthogonal factor that reduces a matrix A to Schur form T, then Q*X and Q*Y are the matrices of right and left eigenvectors of A. | |
| pure subroutine, public | la_dtrevc (side, howmny, select, n, t, ldt, vl, ldvl, vr, ldvr, mm, m, work, info) |
| DTREVC: computes some or all of the right and/or left eigenvectors of a real upper quasi-triangular matrix T. Matrices of this type are produced by the Schur factorization of a real general matrix: A = Q*T*Q**T, as computed by DHSEQR. The right eigenvector x and the left eigenvector y of T corresponding to an eigenvalue w are defined by: T*x = w*x, (y**H)*T = w*(y**H) where y**H denotes the conjugate transpose of y. The eigenvalues are not input to this routine, but are read directly from the diagonal blocks of T. This routine returns the matrices X and/or Y of right and left eigenvectors of T, or the products Q*X and/or Q*Y, where Q is an input matrix. If Q is the orthogonal factor that reduces a matrix A to Schur form T, then Q*X and Q*Y are the matrices of right and left eigenvectors of A. | |
| pure subroutine, public | la_qtrevc (side, howmny, select, n, t, ldt, vl, ldvl, vr, ldvr, mm, m, work, info) |
| QTREVC: computes some or all of the right and/or left eigenvectors of a real upper quasi-triangular matrix T. Matrices of this type are produced by the Schur factorization of a real general matrix: A = Q*T*Q**T, as computed by QHSEQR. The right eigenvector x and the left eigenvector y of T corresponding to an eigenvalue w are defined by: T*x = w*x, (y**H)*T = w*(y**H) where y**H denotes the conjugate transpose of y. The eigenvalues are not input to this routine, but are read directly from the diagonal blocks of T. This routine returns the matrices X and/or Y of right and left eigenvectors of T, or the products Q*X and/or Q*Y, where Q is an input matrix. If Q is the orthogonal factor that reduces a matrix A to Schur form T, then Q*X and Q*Y are the matrices of right and left eigenvectors of A. | |
| pure subroutine, public | la_strevc3 (side, howmny, select, n, t, ldt, vl, ldvl, vr, ldvr, mm, m, work, lwork, info) |
| STREVC3: computes some or all of the right and/or left eigenvectors of a real upper quasi-triangular matrix T. Matrices of this type are produced by the Schur factorization of a real general matrix: A = Q*T*Q**T, as computed by SHSEQR. The right eigenvector x and the left eigenvector y of T corresponding to an eigenvalue w are defined by: T*x = w*x, (y**T)*T = w*(y**T) where y**T denotes the transpose of the vector y. The eigenvalues are not input to this routine, but are read directly from the diagonal blocks of T. This routine returns the matrices X and/or Y of right and left eigenvectors of T, or the products Q*X and/or Q*Y, where Q is an input matrix. If Q is the orthogonal factor that reduces a matrix A to Schur form T, then Q*X and Q*Y are the matrices of right and left eigenvectors of A. This uses a Level 3 BLAS version of the back transformation. | |
| pure subroutine, public | la_dtrevc3 (side, howmny, select, n, t, ldt, vl, ldvl, vr, ldvr, mm, m, work, lwork, info) |
| DTREVC3: computes some or all of the right and/or left eigenvectors of a real upper quasi-triangular matrix T. Matrices of this type are produced by the Schur factorization of a real general matrix: A = Q*T*Q**T, as computed by DHSEQR. The right eigenvector x and the left eigenvector y of T corresponding to an eigenvalue w are defined by: T*x = w*x, (y**T)*T = w*(y**T) where y**T denotes the transpose of the vector y. The eigenvalues are not input to this routine, but are read directly from the diagonal blocks of T. This routine returns the matrices X and/or Y of right and left eigenvectors of T, or the products Q*X and/or Q*Y, where Q is an input matrix. If Q is the orthogonal factor that reduces a matrix A to Schur form T, then Q*X and Q*Y are the matrices of right and left eigenvectors of A. This uses a Level 3 BLAS version of the back transformation. | |
| pure subroutine, public | la_qtrevc3 (side, howmny, select, n, t, ldt, vl, ldvl, vr, ldvr, mm, m, work, lwork, info) |
| QTREVC3: computes some or all of the right and/or left eigenvectors of a real upper quasi-triangular matrix T. Matrices of this type are produced by the Schur factorization of a real general matrix: A = Q*T*Q**T, as computed by QHSEQR. The right eigenvector x and the left eigenvector y of T corresponding to an eigenvalue w are defined by: T*x = w*x, (y**T)*T = w*(y**T) where y**T denotes the transpose of the vector y. The eigenvalues are not input to this routine, but are read directly from the diagonal blocks of T. This routine returns the matrices X and/or Y of right and left eigenvectors of T, or the products Q*X and/or Q*Y, where Q is an input matrix. If Q is the orthogonal factor that reduces a matrix A to Schur form T, then Q*X and Q*Y are the matrices of right and left eigenvectors of A. This uses a Level 3 BLAS version of the back transformation. | |
| subroutine, public | la_strsyl (trana, tranb, isgn, m, n, a, lda, b, ldb, c, ldc, scale, info) |
| 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. 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. | |
| subroutine, public | la_dtrsyl (trana, tranb, isgn, m, n, a, lda, b, ldb, c, ldc, scale, info) |
| 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. A and B must be in Schur canonical form (as returned by DHSEQR), 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. | |
| subroutine, public | la_qtrsyl (trana, tranb, isgn, m, n, a, lda, b, ldb, c, ldc, scale, info) |
| QTRSYL: 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. A and B must be in Schur canonical form (as returned by QHSEQR), 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. | |
| subroutine, public | la_shsein (side, eigsrc, initv, select, n, h, ldh, wr, wi, vl, ldvl, vr, ldvr, mm, m, work, ifaill, ifailr, info) |
| SHSEIN: uses inverse iteration to find specified right and/or left eigenvectors of a real upper Hessenberg matrix H. The right eigenvector x and the left eigenvector y of the matrix H corresponding to an eigenvalue w are defined by: H * x = w * x, y**h * H = w * y**h where y**h denotes the conjugate transpose of the vector y. | |
| subroutine, public | la_dhsein (side, eigsrc, initv, select, n, h, ldh, wr, wi, vl, ldvl, vr, ldvr, mm, m, work, ifaill, ifailr, info) |
| DHSEIN: uses inverse iteration to find specified right and/or left eigenvectors of a real upper Hessenberg matrix H. The right eigenvector x and the left eigenvector y of the matrix H corresponding to an eigenvalue w are defined by: H * x = w * x, y**h * H = w * y**h where y**h denotes the conjugate transpose of the vector y. | |
| subroutine, public | la_qhsein (side, eigsrc, initv, select, n, h, ldh, wr, wi, vl, ldvl, vr, ldvr, mm, m, work, ifaill, ifailr, info) |
| QHSEIN: uses inverse iteration to find specified right and/or left eigenvectors of a real upper Hessenberg matrix H. The right eigenvector x and the left eigenvector y of the matrix H corresponding to an eigenvalue w are defined by: H * x = w * x, y**h * H = w * y**h where y**h denotes the conjugate transpose of the vector y. | |
| subroutine, public | la_strsen (job, compq, select, n, t, ldt, q, ldq, wr, wi, m, s, sep, work, lwork, iwork, liwork, info) |
| STRSEN: reorders the real Schur factorization of a real matrix A = Q*T*Q**T, so that a selected cluster of eigenvalues appears in the leading diagonal blocks of the upper quasi-triangular matrix T, and the leading columns of Q form an orthonormal basis of the corresponding right invariant subspace. Optionally the routine computes the reciprocal condition numbers of the cluster of eigenvalues and/or the invariant subspace. T 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. | |
| subroutine, public | la_dtrsen (job, compq, select, n, t, ldt, q, ldq, wr, wi, m, s, sep, work, lwork, iwork, liwork, info) |
| DTRSEN: reorders the real Schur factorization of a real matrix A = Q*T*Q**T, so that a selected cluster of eigenvalues appears in the leading diagonal blocks of the upper quasi-triangular matrix T, and the leading columns of Q form an orthonormal basis of the corresponding right invariant subspace. Optionally the routine computes the reciprocal condition numbers of the cluster of eigenvalues and/or the invariant subspace. T must be in Schur canonical form (as returned by DHSEQR), 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. | |
| subroutine, public | la_qtrsen (job, compq, select, n, t, ldt, q, ldq, wr, wi, m, s, sep, work, lwork, iwork, liwork, info) |
| QTRSEN: reorders the real Schur factorization of a real matrix A = Q*T*Q**T, so that a selected cluster of eigenvalues appears in the leading diagonal blocks of the upper quasi-triangular matrix T, and the leading columns of Q form an orthonormal basis of the corresponding right invariant subspace. Optionally the routine computes the reciprocal condition numbers of the cluster of eigenvalues and/or the invariant subspace. T must be in Schur canonical form (as returned by QHSEQR), 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. | |
| subroutine, public | la_strsna (job, howmny, select, n, t, ldt, vl, ldvl, vr, ldvr, s, sep, mm, m, work, ldwork, iwork, info) |
| STRSNA: estimates reciprocal condition numbers for specified eigenvalues and/or right eigenvectors of a real upper quasi-triangular matrix T (or of any matrix Q*T*Q**T with Q orthogonal). T 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. | |
| subroutine, public | la_dtrsna (job, howmny, select, n, t, ldt, vl, ldvl, vr, ldvr, s, sep, mm, m, work, ldwork, iwork, info) |
| DTRSNA: estimates reciprocal condition numbers for specified eigenvalues and/or right eigenvectors of a real upper quasi-triangular matrix T (or of any matrix Q*T*Q**T with Q orthogonal). T must be in Schur canonical form (as returned by DHSEQR), 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. | |
| subroutine, public | la_qtrsna (job, howmny, select, n, t, ldt, vl, ldvl, vr, ldvr, s, sep, mm, m, work, ldwork, iwork, info) |
| QTRSNA: estimates reciprocal condition numbers for specified eigenvalues and/or right eigenvectors of a real upper quasi-triangular matrix T (or of any matrix Q*T*Q**T with Q orthogonal). T must be in Schur canonical form (as returned by QHSEQR), 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. | |
| subroutine, public | la_shseqr (job, compz, n, ilo, ihi, h, ldh, wr, wi, z, ldz, work, lwork, info) |
| SHSEQR: computes the eigenvalues of a Hessenberg matrix H and, optionally, the matrices T and Z from the Schur decomposition H = Z T Z**T, where T is an upper quasi-triangular matrix (the Schur form), and Z is the orthogonal matrix of Schur vectors. Optionally Z may be postmultiplied into an input orthogonal matrix Q so that this routine can give the Schur factorization of a matrix A which has been reduced to the Hessenberg form H by the orthogonal matrix Q: A = Q*H*Q**T = (QZ)*T*(QZ)**T. | |
| subroutine, public | la_dhseqr (job, compz, n, ilo, ihi, h, ldh, wr, wi, z, ldz, work, lwork, info) |
| DHSEQR: computes the eigenvalues of a Hessenberg matrix H and, optionally, the matrices T and Z from the Schur decomposition H = Z T Z**T, where T is an upper quasi-triangular matrix (the Schur form), and Z is the orthogonal matrix of Schur vectors. Optionally Z may be postmultiplied into an input orthogonal matrix Q so that this routine can give the Schur factorization of a matrix A which has been reduced to the Hessenberg form H by the orthogonal matrix Q: A = Q*H*Q**T = (QZ)*T*(QZ)**T. | |
| subroutine, public | la_qhseqr (job, compz, n, ilo, ihi, h, ldh, wr, wi, z, ldz, work, lwork, info) |
| QHSEQR: computes the eigenvalues of a Hessenberg matrix H and, optionally, the matrices T and Z from the Schur decomposition H = Z T Z**T, where T is an upper quasi-triangular matrix (the Schur form), and Z is the orthogonal matrix of Schur vectors. Optionally Z may be postmultiplied into an input orthogonal matrix Q so that this routine can give the Schur factorization of a matrix A which has been reduced to the Hessenberg form H by the orthogonal matrix Q: A = Q*H*Q**T = (QZ)*T*(QZ)**T. | |
| pure subroutine, public | la_ctrevc (side, howmny, select, n, t, ldt, vl, ldvl, vr, ldvr, mm, m, work, rwork, info) |
| CTREVC: computes some or all of the right and/or left eigenvectors of a complex upper triangular matrix T. Matrices of this type are produced by the Schur factorization of a complex general matrix: A = Q*T*Q**H, as computed by CHSEQR. The right eigenvector x and the left eigenvector y of T corresponding to an eigenvalue w are defined by: T*x = w*x, (y**H)*T = w*(y**H) where y**H denotes the conjugate transpose of the vector y. The eigenvalues are not input to this routine, but are read directly from the diagonal of T. This routine returns the matrices X and/or Y of right and left eigenvectors of T, or the products Q*X and/or Q*Y, where Q is an input matrix. If Q is the unitary factor that reduces a matrix A to Schur form T, then Q*X and Q*Y are the matrices of right and left eigenvectors of A. | |
| pure subroutine, public | la_ztrevc (side, howmny, select, n, t, ldt, vl, ldvl, vr, ldvr, mm, m, work, rwork, info) |
| ZTREVC: computes some or all of the right and/or left eigenvectors of a complex upper triangular matrix T. Matrices of this type are produced by the Schur factorization of a complex general matrix: A = Q*T*Q**H, as computed by ZHSEQR. The right eigenvector x and the left eigenvector y of T corresponding to an eigenvalue w are defined by: T*x = w*x, (y**H)*T = w*(y**H) where y**H denotes the conjugate transpose of the vector y. The eigenvalues are not input to this routine, but are read directly from the diagonal of T. This routine returns the matrices X and/or Y of right and left eigenvectors of T, or the products Q*X and/or Q*Y, where Q is an input matrix. If Q is the unitary factor that reduces a matrix A to Schur form T, then Q*X and Q*Y are the matrices of right and left eigenvectors of A. | |
| pure subroutine, public | la_wtrevc (side, howmny, select, n, t, ldt, vl, ldvl, vr, ldvr, mm, m, work, rwork, info) |
| WTREVC: computes some or all of the right and/or left eigenvectors of a complex upper triangular matrix T. Matrices of this type are produced by the Schur factorization of a complex general matrix: A = Q*T*Q**H, as computed by WHSEQR. The right eigenvector x and the left eigenvector y of T corresponding to an eigenvalue w are defined by: T*x = w*x, (y**H)*T = w*(y**H) where y**H denotes the conjugate transpose of the vector y. The eigenvalues are not input to this routine, but are read directly from the diagonal of T. This routine returns the matrices X and/or Y of right and left eigenvectors of T, or the products Q*X and/or Q*Y, where Q is an input matrix. If Q is the unitary factor that reduces a matrix A to Schur form T, then Q*X and Q*Y are the matrices of right and left eigenvectors of A. | |
| pure subroutine, public | la_ctrevc3 (side, howmny, select, n, t, ldt, vl, ldvl, vr, ldvr, mm, m, work, lwork, rwork, lrwork, info) |
| CTREVC3: computes some or all of the right and/or left eigenvectors of a complex upper triangular matrix T. Matrices of this type are produced by the Schur factorization of a complex general matrix: A = Q*T*Q**H, as computed by CHSEQR. The right eigenvector x and the left eigenvector y of T corresponding to an eigenvalue w are defined by: T*x = w*x, (y**H)*T = w*(y**H) where y**H denotes the conjugate transpose of the vector y. The eigenvalues are not input to this routine, but are read directly from the diagonal of T. This routine returns the matrices X and/or Y of right and left eigenvectors of T, or the products Q*X and/or Q*Y, where Q is an input matrix. If Q is the unitary factor that reduces a matrix A to Schur form T, then Q*X and Q*Y are the matrices of right and left eigenvectors of A. This uses a Level 3 BLAS version of the back transformation. | |
| pure subroutine, public | la_ztrevc3 (side, howmny, select, n, t, ldt, vl, ldvl, vr, ldvr, mm, m, work, lwork, rwork, lrwork, info) |
| ZTREVC3: computes some or all of the right and/or left eigenvectors of a complex upper triangular matrix T. Matrices of this type are produced by the Schur factorization of a complex general matrix: A = Q*T*Q**H, as computed by ZHSEQR. The right eigenvector x and the left eigenvector y of T corresponding to an eigenvalue w are defined by: T*x = w*x, (y**H)*T = w*(y**H) where y**H denotes the conjugate transpose of the vector y. The eigenvalues are not input to this routine, but are read directly from the diagonal of T. This routine returns the matrices X and/or Y of right and left eigenvectors of T, or the products Q*X and/or Q*Y, where Q is an input matrix. If Q is the unitary factor that reduces a matrix A to Schur form T, then Q*X and Q*Y are the matrices of right and left eigenvectors of A. This uses a Level 3 BLAS version of the back transformation. | |
| pure subroutine, public | la_wtrevc3 (side, howmny, select, n, t, ldt, vl, ldvl, vr, ldvr, mm, m, work, lwork, rwork, lrwork, info) |
| WTREVC3: computes some or all of the right and/or left eigenvectors of a complex upper triangular matrix T. Matrices of this type are produced by the Schur factorization of a complex general matrix: A = Q*T*Q**H, as computed by WHSEQR. The right eigenvector x and the left eigenvector y of T corresponding to an eigenvalue w are defined by: T*x = w*x, (y**H)*T = w*(y**H) where y**H denotes the conjugate transpose of the vector y. The eigenvalues are not input to this routine, but are read directly from the diagonal of T. This routine returns the matrices X and/or Y of right and left eigenvectors of T, or the products Q*X and/or Q*Y, where Q is an input matrix. If Q is the unitary factor that reduces a matrix A to Schur form T, then Q*X and Q*Y are the matrices of right and left eigenvectors of A. This uses a Level 3 BLAS version of the back transformation. | |
| pure subroutine, public | la_ctrsna (job, howmny, select, n, t, ldt, vl, ldvl, vr, ldvr, s, sep, mm, m, work, ldwork, rwork, info) |
| CTRSNA: estimates reciprocal condition numbers for specified eigenvalues and/or right eigenvectors of a complex upper triangular matrix T (or of any matrix Q*T*Q**H with Q unitary). | |
| pure subroutine, public | la_ztrsna (job, howmny, select, n, t, ldt, vl, ldvl, vr, ldvr, s, sep, mm, m, work, ldwork, rwork, info) |
| ZTRSNA: estimates reciprocal condition numbers for specified eigenvalues and/or right eigenvectors of a complex upper triangular matrix T (or of any matrix Q*T*Q**H with Q unitary). | |
| pure subroutine, public | la_wtrsna (job, howmny, select, n, t, ldt, vl, ldvl, vr, ldvr, s, sep, mm, m, work, ldwork, rwork, info) |
| WTRSNA: estimates reciprocal condition numbers for specified eigenvalues and/or right eigenvectors of a complex upper triangular matrix T (or of any matrix Q*T*Q**H with Q unitary). | |
| pure subroutine, public | la_claein (rightv, noinit, n, h, ldh, w, v, b, ldb, rwork, eps3, smlnum, info) |
| CLAEIN: uses inverse iteration to find a right or left eigenvector corresponding to the eigenvalue W of a complex upper Hessenberg matrix H. | |
| pure subroutine, public | la_zlaein (rightv, noinit, n, h, ldh, w, v, b, ldb, rwork, eps3, smlnum, info) |
| ZLAEIN: uses inverse iteration to find a right or left eigenvector corresponding to the eigenvalue W of a complex upper Hessenberg matrix H. | |
| pure subroutine, public | la_wlaein (rightv, noinit, n, h, ldh, w, v, b, ldb, rwork, eps3, smlnum, info) |
| WLAEIN: uses inverse iteration to find a right or left eigenvector corresponding to the eigenvalue W of a complex upper Hessenberg matrix H. | |
| subroutine, public | la_ctrsyl (trana, tranb, isgn, m, n, a, lda, b, ldb, c, ldc, scale, info) |
| 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. | |
| subroutine, public | la_ztrsyl (trana, tranb, isgn, m, n, a, lda, b, ldb, c, ldc, scale, info) |
| 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. | |
| subroutine, public | la_wtrsyl (trana, tranb, isgn, m, n, a, lda, b, ldb, c, ldc, scale, info) |
| WTRSYL: 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. | |
| subroutine, public | la_chsein (side, eigsrc, initv, select, n, h, ldh, w, vl, ldvl, vr, ldvr, mm, m, work, rwork, ifaill, ifailr, info) |
| CHSEIN: uses inverse iteration to find specified right and/or left eigenvectors of a complex upper Hessenberg matrix H. The right eigenvector x and the left eigenvector y of the matrix H corresponding to an eigenvalue w are defined by: H * x = w * x, y**h * H = w * y**h where y**h denotes the conjugate transpose of the vector y. | |
| subroutine, public | la_zhsein (side, eigsrc, initv, select, n, h, ldh, w, vl, ldvl, vr, ldvr, mm, m, work, rwork, ifaill, ifailr, info) |
| ZHSEIN: uses inverse iteration to find specified right and/or left eigenvectors of a complex upper Hessenberg matrix H. The right eigenvector x and the left eigenvector y of the matrix H corresponding to an eigenvalue w are defined by: H * x = w * x, y**h * H = w * y**h where y**h denotes the conjugate transpose of the vector y. | |
| subroutine, public | la_whsein (side, eigsrc, initv, select, n, h, ldh, w, vl, ldvl, vr, ldvr, mm, m, work, rwork, ifaill, ifailr, info) |
| WHSEIN: uses inverse iteration to find specified right and/or left eigenvectors of a complex upper Hessenberg matrix H. The right eigenvector x and the left eigenvector y of the matrix H corresponding to an eigenvalue w are defined by: H * x = w * x, y**h * H = w * y**h where y**h denotes the conjugate transpose of the vector y. | |
| subroutine, public | la_ctrsen (job, compq, select, n, t, ldt, q, ldq, w, m, s, sep, work, lwork, info) |
| CTRSEN: reorders the Schur factorization of a complex matrix A = Q*T*Q**H, so that a selected cluster of eigenvalues appears in the leading positions on the diagonal of the upper triangular matrix T, and the leading columns of Q form an orthonormal basis of the corresponding right invariant subspace. Optionally the routine computes the reciprocal condition numbers of the cluster of eigenvalues and/or the invariant subspace. | |
| subroutine, public | la_ztrsen (job, compq, select, n, t, ldt, q, ldq, w, m, s, sep, work, lwork, info) |
| ZTRSEN: reorders the Schur factorization of a complex matrix A = Q*T*Q**H, so that a selected cluster of eigenvalues appears in the leading positions on the diagonal of the upper triangular matrix T, and the leading columns of Q form an orthonormal basis of the corresponding right invariant subspace. Optionally the routine computes the reciprocal condition numbers of the cluster of eigenvalues and/or the invariant subspace. | |
| subroutine, public | la_wtrsen (job, compq, select, n, t, ldt, q, ldq, w, m, s, sep, work, lwork, info) |
| WTRSEN: reorders the Schur factorization of a complex matrix A = Q*T*Q**H, so that a selected cluster of eigenvalues appears in the leading positions on the diagonal of the upper triangular matrix T, and the leading columns of Q form an orthonormal basis of the corresponding right invariant subspace. Optionally the routine computes the reciprocal condition numbers of the cluster of eigenvalues and/or the invariant subspace. | |
| pure subroutine, public | la_chseqr (job, compz, n, ilo, ihi, h, ldh, w, z, ldz, work, lwork, info) |
| CHSEQR: computes the eigenvalues of a Hessenberg matrix H and, optionally, the matrices T and Z from the Schur decomposition H = Z T Z**H, where T is an upper triangular matrix (the Schur form), and Z is the unitary matrix of Schur vectors. Optionally Z may be postmultiplied into an input unitary matrix Q so that this routine can give the Schur factorization of a matrix A which has been reduced to the Hessenberg form H by the unitary matrix Q: A = Q*H*Q**H = (QZ)*T*(QZ)**H. | |
| pure subroutine, public | la_zhseqr (job, compz, n, ilo, ihi, h, ldh, w, z, ldz, work, lwork, info) |
| ZHSEQR: computes the eigenvalues of a Hessenberg matrix H and, optionally, the matrices T and Z from the Schur decomposition H = Z T Z**H, where T is an upper triangular matrix (the Schur form), and Z is the unitary matrix of Schur vectors. Optionally Z may be postmultiplied into an input unitary matrix Q so that this routine can give the Schur factorization of a matrix A which has been reduced to the Hessenberg form H by the unitary matrix Q: A = Q*H*Q**H = (QZ)*T*(QZ)**H. | |
| pure subroutine, public | la_whseqr (job, compz, n, ilo, ihi, h, ldh, w, z, ldz, work, lwork, info) |
| WHSEQR: computes the eigenvalues of a Hessenberg matrix H and, optionally, the matrices T and Z from the Schur decomposition H = Z T Z**H, where T is an upper triangular matrix (the Schur form), and Z is the unitary matrix of Schur vectors. Optionally Z may be postmultiplied into an input unitary matrix Q so that this routine can give the Schur factorization of a matrix A which has been reduced to the Hessenberg form H by the unitary matrix Q: A = Q*H*Q**H = (QZ)*T*(QZ)**H. | |
Nonsymmetric eigenproblem components: Schur factorization, eigenvectors, reordering and condition numbers.
| subroutine, public la_lapack_eigv_gen2::la_chsein | ( | character, intent(in) | side, |
| character, intent(in) | eigsrc, | ||
| character, intent(in) | initv, | ||
| logical(lk), dimension(*), intent(in) | select, | ||
| integer(ilp), intent(in) | n, | ||
| complex(sp), dimension(ldh,*), intent(in) | h, | ||
| integer(ilp), intent(in) | ldh, | ||
| complex(sp), dimension(*), intent(inout) | w, | ||
| complex(sp), dimension(ldvl,*), intent(inout) | vl, | ||
| integer(ilp), intent(in) | ldvl, | ||
| complex(sp), dimension(ldvr,*), intent(inout) | vr, | ||
| integer(ilp), intent(in) | ldvr, | ||
| integer(ilp), intent(in) | mm, | ||
| integer(ilp), intent(out) | m, | ||
| complex(sp), dimension(*), intent(out) | work, | ||
| real(sp), dimension(*), intent(out) | rwork, | ||
| integer(ilp), dimension(*), intent(out) | ifaill, | ||
| integer(ilp), dimension(*), intent(out) | ifailr, | ||
| integer(ilp), intent(out) | info ) |
CHSEIN: uses inverse iteration to find specified right and/or left eigenvectors of a complex upper Hessenberg matrix H. The right eigenvector x and the left eigenvector y of the matrix H corresponding to an eigenvalue w are defined by: H * x = w * x, y**h * H = w * y**h where y**h denotes the conjugate transpose of the vector y.

| pure subroutine, public la_lapack_eigv_gen2::la_chseqr | ( | character, intent(in) | job, |
| character, intent(in) | compz, | ||
| integer(ilp), intent(in) | n, | ||
| integer(ilp), intent(in) | ilo, | ||
| integer(ilp), intent(in) | ihi, | ||
| complex(sp), dimension(ldh,*), intent(inout) | h, | ||
| integer(ilp), intent(in) | ldh, | ||
| complex(sp), dimension(*), intent(out) | w, | ||
| complex(sp), dimension(ldz,*), intent(inout) | z, | ||
| integer(ilp), intent(in) | ldz, | ||
| complex(sp), dimension(*), intent(out) | work, | ||
| integer(ilp), intent(in) | lwork, | ||
| integer(ilp), intent(out) | info ) |
CHSEQR: computes the eigenvalues of a Hessenberg matrix H and, optionally, the matrices T and Z from the Schur decomposition H = Z T Z**H, where T is an upper triangular matrix (the Schur form), and Z is the unitary matrix of Schur vectors. Optionally Z may be postmultiplied into an input unitary matrix Q so that this routine can give the Schur factorization of a matrix A which has been reduced to the Hessenberg form H by the unitary matrix Q: A = Q*H*Q**H = (QZ)*T*(QZ)**H.

| pure subroutine, public la_lapack_eigv_gen2::la_claein | ( | logical(lk), intent(in) | rightv, |
| logical(lk), intent(in) | noinit, | ||
| integer(ilp), intent(in) | n, | ||
| complex(sp), dimension(ldh,*), intent(in) | h, | ||
| integer(ilp), intent(in) | ldh, | ||
| complex(sp), intent(in) | w, | ||
| complex(sp), dimension(*), intent(inout) | v, | ||
| complex(sp), dimension(ldb,*), intent(out) | b, | ||
| integer(ilp), intent(in) | ldb, | ||
| real(sp), dimension(*), intent(out) | rwork, | ||
| real(sp), intent(in) | eps3, | ||
| real(sp), intent(in) | smlnum, | ||
| integer(ilp), intent(out) | info ) |
CLAEIN: uses inverse iteration to find a right or left eigenvector corresponding to the eigenvalue W of a complex upper Hessenberg matrix H.

| pure subroutine, public la_lapack_eigv_gen2::la_ctrevc | ( | character, intent(in) | side, |
| character, intent(in) | howmny, | ||
| logical(lk), dimension(*), intent(in) | select, | ||
| integer(ilp), intent(in) | n, | ||
| complex(sp), dimension(ldt,*), intent(inout) | t, | ||
| integer(ilp), intent(in) | ldt, | ||
| complex(sp), dimension(ldvl,*), intent(inout) | vl, | ||
| integer(ilp), intent(in) | ldvl, | ||
| complex(sp), dimension(ldvr,*), intent(inout) | vr, | ||
| integer(ilp), intent(in) | ldvr, | ||
| integer(ilp), intent(in) | mm, | ||
| integer(ilp), intent(out) | m, | ||
| complex(sp), dimension(*), intent(out) | work, | ||
| real(sp), dimension(*), intent(out) | rwork, | ||
| integer(ilp), intent(out) | info ) |
CTREVC: computes some or all of the right and/or left eigenvectors of a complex upper triangular matrix T. Matrices of this type are produced by the Schur factorization of a complex general matrix: A = Q*T*Q**H, as computed by CHSEQR. The right eigenvector x and the left eigenvector y of T corresponding to an eigenvalue w are defined by: T*x = w*x, (y**H)*T = w*(y**H) where y**H denotes the conjugate transpose of the vector y. The eigenvalues are not input to this routine, but are read directly from the diagonal of T. This routine returns the matrices X and/or Y of right and left eigenvectors of T, or the products Q*X and/or Q*Y, where Q is an input matrix. If Q is the unitary factor that reduces a matrix A to Schur form T, then Q*X and Q*Y are the matrices of right and left eigenvectors of A.

| pure subroutine, public la_lapack_eigv_gen2::la_ctrevc3 | ( | character, intent(in) | side, |
| character, intent(in) | howmny, | ||
| logical(lk), dimension(*), intent(in) | select, | ||
| integer(ilp), intent(in) | n, | ||
| complex(sp), dimension(ldt,*), intent(inout) | t, | ||
| integer(ilp), intent(in) | ldt, | ||
| complex(sp), dimension(ldvl,*), intent(inout) | vl, | ||
| integer(ilp), intent(in) | ldvl, | ||
| complex(sp), dimension(ldvr,*), intent(inout) | vr, | ||
| integer(ilp), intent(in) | ldvr, | ||
| integer(ilp), intent(in) | mm, | ||
| integer(ilp), intent(out) | m, | ||
| complex(sp), dimension(*), intent(out) | work, | ||
| integer(ilp), intent(in) | lwork, | ||
| real(sp), dimension(*), intent(out) | rwork, | ||
| integer(ilp), intent(in) | lrwork, | ||
| integer(ilp), intent(out) | info ) |
CTREVC3: computes some or all of the right and/or left eigenvectors of a complex upper triangular matrix T. Matrices of this type are produced by the Schur factorization of a complex general matrix: A = Q*T*Q**H, as computed by CHSEQR. The right eigenvector x and the left eigenvector y of T corresponding to an eigenvalue w are defined by: T*x = w*x, (y**H)*T = w*(y**H) where y**H denotes the conjugate transpose of the vector y. The eigenvalues are not input to this routine, but are read directly from the diagonal of T. This routine returns the matrices X and/or Y of right and left eigenvectors of T, or the products Q*X and/or Q*Y, where Q is an input matrix. If Q is the unitary factor that reduces a matrix A to Schur form T, then Q*X and Q*Y are the matrices of right and left eigenvectors of A. This uses a Level 3 BLAS version of the back transformation.

| subroutine, public la_lapack_eigv_gen2::la_ctrsen | ( | character, intent(in) | job, |
| character, intent(in) | compq, | ||
| logical(lk), dimension(*), intent(in) | select, | ||
| integer(ilp), intent(in) | n, | ||
| complex(sp), dimension(ldt,*), intent(inout) | t, | ||
| integer(ilp), intent(in) | ldt, | ||
| complex(sp), dimension(ldq,*), intent(inout) | q, | ||
| integer(ilp), intent(in) | ldq, | ||
| complex(sp), dimension(*), intent(out) | w, | ||
| integer(ilp), intent(out) | m, | ||
| real(sp), intent(out) | s, | ||
| real(sp), intent(out) | sep, | ||
| complex(sp), dimension(*), intent(out) | work, | ||
| integer(ilp), intent(in) | lwork, | ||
| integer(ilp), intent(out) | info ) |
CTRSEN: reorders the Schur factorization of a complex matrix A = Q*T*Q**H, so that a selected cluster of eigenvalues appears in the leading positions on the diagonal of the upper triangular matrix T, and the leading columns of Q form an orthonormal basis of the corresponding right invariant subspace. Optionally the routine computes the reciprocal condition numbers of the cluster of eigenvalues and/or the invariant subspace.

| pure subroutine, public la_lapack_eigv_gen2::la_ctrsna | ( | character, intent(in) | job, |
| character, intent(in) | howmny, | ||
| logical(lk), dimension(*), intent(in) | select, | ||
| integer(ilp), intent(in) | n, | ||
| complex(sp), dimension(ldt,*), intent(in) | t, | ||
| integer(ilp), intent(in) | ldt, | ||
| complex(sp), dimension(ldvl,*), intent(in) | vl, | ||
| integer(ilp), intent(in) | ldvl, | ||
| complex(sp), dimension(ldvr,*), intent(in) | vr, | ||
| integer(ilp), intent(in) | ldvr, | ||
| real(sp), dimension(*), intent(out) | s, | ||
| real(sp), dimension(*), intent(out) | sep, | ||
| integer(ilp), intent(in) | mm, | ||
| integer(ilp), intent(out) | m, | ||
| complex(sp), dimension(ldwork,*), intent(out) | work, | ||
| integer(ilp), intent(in) | ldwork, | ||
| real(sp), dimension(*), intent(out) | rwork, | ||
| integer(ilp), intent(out) | info ) |
CTRSNA: estimates reciprocal condition numbers for specified eigenvalues and/or right eigenvectors of a complex upper triangular matrix T (or of any matrix Q*T*Q**H with Q unitary).

| subroutine, public la_lapack_eigv_gen2::la_ctrsyl | ( | character, intent(in) | trana, |
| character, intent(in) | tranb, | ||
| integer(ilp), intent(in) | isgn, | ||
| integer(ilp), intent(in) | m, | ||
| integer(ilp), intent(in) | n, | ||
| complex(sp), dimension(lda,*), intent(in) | a, | ||
| integer(ilp), intent(in) | lda, | ||
| complex(sp), dimension(ldb,*), intent(in) | b, | ||
| integer(ilp), intent(in) | ldb, | ||
| complex(sp), dimension(ldc,*), intent(inout) | c, | ||
| integer(ilp), intent(in) | ldc, | ||
| real(sp), intent(out) | scale, | ||
| integer(ilp), intent(out) | info ) |
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.

| subroutine, public la_lapack_eigv_gen2::la_dhsein | ( | character, intent(in) | side, |
| character, intent(in) | eigsrc, | ||
| character, intent(in) | initv, | ||
| logical(lk), dimension(*), intent(inout) | select, | ||
| integer(ilp), intent(in) | n, | ||
| real(dp), dimension(ldh,*), intent(in) | h, | ||
| integer(ilp), intent(in) | ldh, | ||
| real(dp), dimension(*), intent(inout) | wr, | ||
| real(dp), dimension(*), intent(in) | wi, | ||
| real(dp), dimension(ldvl,*), intent(inout) | vl, | ||
| integer(ilp), intent(in) | ldvl, | ||
| real(dp), dimension(ldvr,*), intent(inout) | vr, | ||
| integer(ilp), intent(in) | ldvr, | ||
| integer(ilp), intent(in) | mm, | ||
| integer(ilp), intent(out) | m, | ||
| real(dp), dimension(*), intent(out) | work, | ||
| integer(ilp), dimension(*), intent(out) | ifaill, | ||
| integer(ilp), dimension(*), intent(out) | ifailr, | ||
| integer(ilp), intent(out) | info ) |
DHSEIN: uses inverse iteration to find specified right and/or left eigenvectors of a real upper Hessenberg matrix H. The right eigenvector x and the left eigenvector y of the matrix H corresponding to an eigenvalue w are defined by: H * x = w * x, y**h * H = w * y**h where y**h denotes the conjugate transpose of the vector y.

| subroutine, public la_lapack_eigv_gen2::la_dhseqr | ( | character, intent(in) | job, |
| character, intent(in) | compz, | ||
| integer(ilp), intent(in) | n, | ||
| integer(ilp), intent(in) | ilo, | ||
| integer(ilp), intent(in) | ihi, | ||
| real(dp), dimension(ldh,*), intent(inout) | h, | ||
| integer(ilp), intent(in) | ldh, | ||
| real(dp), dimension(*), intent(out) | wr, | ||
| real(dp), dimension(*), intent(out) | wi, | ||
| real(dp), dimension(ldz,*), intent(inout) | z, | ||
| integer(ilp), intent(in) | ldz, | ||
| real(dp), dimension(*), intent(out) | work, | ||
| integer(ilp), intent(in) | lwork, | ||
| integer(ilp), intent(out) | info ) |
DHSEQR: computes the eigenvalues of a Hessenberg matrix H and, optionally, the matrices T and Z from the Schur decomposition H = Z T Z**T, where T is an upper quasi-triangular matrix (the Schur form), and Z is the orthogonal matrix of Schur vectors. Optionally Z may be postmultiplied into an input orthogonal matrix Q so that this routine can give the Schur factorization of a matrix A which has been reduced to the Hessenberg form H by the orthogonal matrix Q: A = Q*H*Q**T = (QZ)*T*(QZ)**T.

| pure subroutine, public la_lapack_eigv_gen2::la_dlaein | ( | logical(lk), intent(in) | rightv, |
| logical(lk), intent(in) | noinit, | ||
| integer(ilp), intent(in) | n, | ||
| real(dp), dimension(ldh,*), intent(in) | h, | ||
| integer(ilp), intent(in) | ldh, | ||
| real(dp), intent(in) | wr, | ||
| real(dp), intent(in) | wi, | ||
| real(dp), dimension(*), intent(inout) | vr, | ||
| real(dp), dimension(*), intent(inout) | vi, | ||
| real(dp), dimension(ldb,*), intent(out) | b, | ||
| integer(ilp), intent(in) | ldb, | ||
| real(dp), dimension(*), intent(out) | work, | ||
| real(dp), intent(in) | eps3, | ||
| real(dp), intent(in) | smlnum, | ||
| real(dp), intent(in) | bignum, | ||
| integer(ilp), intent(out) | info ) |
DLAEIN: uses inverse iteration to find a right or left eigenvector corresponding to the eigenvalue (WR,WI) of a real upper Hessenberg matrix H.

| pure subroutine, public la_lapack_eigv_gen2::la_dtrevc | ( | character, intent(in) | side, |
| character, intent(in) | howmny, | ||
| logical(lk), dimension(*), intent(inout) | select, | ||
| integer(ilp), intent(in) | n, | ||
| real(dp), dimension(ldt,*), intent(in) | t, | ||
| integer(ilp), intent(in) | ldt, | ||
| real(dp), dimension(ldvl,*), intent(inout) | vl, | ||
| integer(ilp), intent(in) | ldvl, | ||
| real(dp), dimension(ldvr,*), intent(inout) | vr, | ||
| integer(ilp), intent(in) | ldvr, | ||
| integer(ilp), intent(in) | mm, | ||
| integer(ilp), intent(out) | m, | ||
| real(dp), dimension(*), intent(out) | work, | ||
| integer(ilp), intent(out) | info ) |
DTREVC: computes some or all of the right and/or left eigenvectors of a real upper quasi-triangular matrix T. Matrices of this type are produced by the Schur factorization of a real general matrix: A = Q*T*Q**T, as computed by DHSEQR. The right eigenvector x and the left eigenvector y of T corresponding to an eigenvalue w are defined by: T*x = w*x, (y**H)*T = w*(y**H) where y**H denotes the conjugate transpose of y. The eigenvalues are not input to this routine, but are read directly from the diagonal blocks of T. This routine returns the matrices X and/or Y of right and left eigenvectors of T, or the products Q*X and/or Q*Y, where Q is an input matrix. If Q is the orthogonal factor that reduces a matrix A to Schur form T, then Q*X and Q*Y are the matrices of right and left eigenvectors of A.

| pure subroutine, public la_lapack_eigv_gen2::la_dtrevc3 | ( | character, intent(in) | side, |
| character, intent(in) | howmny, | ||
| logical(lk), dimension(*), intent(inout) | select, | ||
| integer(ilp), intent(in) | n, | ||
| real(dp), dimension(ldt,*), intent(in) | t, | ||
| integer(ilp), intent(in) | ldt, | ||
| real(dp), dimension(ldvl,*), intent(inout) | vl, | ||
| integer(ilp), intent(in) | ldvl, | ||
| real(dp), dimension(ldvr,*), intent(inout) | vr, | ||
| integer(ilp), intent(in) | ldvr, | ||
| integer(ilp), intent(in) | mm, | ||
| integer(ilp), intent(out) | m, | ||
| real(dp), dimension(*), intent(out) | work, | ||
| integer(ilp), intent(in) | lwork, | ||
| integer(ilp), intent(out) | info ) |
DTREVC3: computes some or all of the right and/or left eigenvectors of a real upper quasi-triangular matrix T. Matrices of this type are produced by the Schur factorization of a real general matrix: A = Q*T*Q**T, as computed by DHSEQR. The right eigenvector x and the left eigenvector y of T corresponding to an eigenvalue w are defined by: T*x = w*x, (y**T)*T = w*(y**T) where y**T denotes the transpose of the vector y. The eigenvalues are not input to this routine, but are read directly from the diagonal blocks of T. This routine returns the matrices X and/or Y of right and left eigenvectors of T, or the products Q*X and/or Q*Y, where Q is an input matrix. If Q is the orthogonal factor that reduces a matrix A to Schur form T, then Q*X and Q*Y are the matrices of right and left eigenvectors of A. This uses a Level 3 BLAS version of the back transformation.

| subroutine, public la_lapack_eigv_gen2::la_dtrsen | ( | character, intent(in) | job, |
| character, intent(in) | compq, | ||
| logical(lk), dimension(*), intent(in) | select, | ||
| integer(ilp), intent(in) | n, | ||
| real(dp), dimension(ldt,*), intent(inout) | t, | ||
| integer(ilp), intent(in) | ldt, | ||
| real(dp), dimension(ldq,*), intent(inout) | q, | ||
| integer(ilp), intent(in) | ldq, | ||
| real(dp), dimension(*), intent(out) | wr, | ||
| real(dp), dimension(*), intent(out) | wi, | ||
| integer(ilp), intent(out) | m, | ||
| real(dp), intent(out) | s, | ||
| real(dp), intent(out) | sep, | ||
| real(dp), dimension(*), intent(out) | work, | ||
| integer(ilp), intent(in) | lwork, | ||
| integer(ilp), dimension(*), intent(out) | iwork, | ||
| integer(ilp), intent(in) | liwork, | ||
| integer(ilp), intent(out) | info ) |
DTRSEN: reorders the real Schur factorization of a real matrix A = Q*T*Q**T, so that a selected cluster of eigenvalues appears in the leading diagonal blocks of the upper quasi-triangular matrix T, and the leading columns of Q form an orthonormal basis of the corresponding right invariant subspace. Optionally the routine computes the reciprocal condition numbers of the cluster of eigenvalues and/or the invariant subspace. T must be in Schur canonical form (as returned by DHSEQR), 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.

| subroutine, public la_lapack_eigv_gen2::la_dtrsna | ( | character, intent(in) | job, |
| character, intent(in) | howmny, | ||
| logical(lk), dimension(*), intent(in) | select, | ||
| integer(ilp), intent(in) | n, | ||
| real(dp), dimension(ldt,*), intent(in) | t, | ||
| integer(ilp), intent(in) | ldt, | ||
| real(dp), dimension(ldvl,*), intent(in) | vl, | ||
| integer(ilp), intent(in) | ldvl, | ||
| real(dp), dimension(ldvr,*), intent(in) | vr, | ||
| integer(ilp), intent(in) | ldvr, | ||
| real(dp), dimension(*), intent(out) | s, | ||
| real(dp), dimension(*), intent(out) | sep, | ||
| integer(ilp), intent(in) | mm, | ||
| integer(ilp), intent(out) | m, | ||
| real(dp), dimension(ldwork,*), intent(out) | work, | ||
| integer(ilp), intent(in) | ldwork, | ||
| integer(ilp), dimension(*), intent(out) | iwork, | ||
| integer(ilp), intent(out) | info ) |
DTRSNA: estimates reciprocal condition numbers for specified eigenvalues and/or right eigenvectors of a real upper quasi-triangular matrix T (or of any matrix Q*T*Q**T with Q orthogonal). T must be in Schur canonical form (as returned by DHSEQR), 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.

| subroutine, public la_lapack_eigv_gen2::la_dtrsyl | ( | character, intent(in) | trana, |
| character, intent(in) | tranb, | ||
| integer(ilp), intent(in) | isgn, | ||
| integer(ilp), intent(in) | m, | ||
| integer(ilp), intent(in) | n, | ||
| real(dp), dimension(lda,*), intent(in) | a, | ||
| integer(ilp), intent(in) | lda, | ||
| real(dp), dimension(ldb,*), intent(in) | b, | ||
| integer(ilp), intent(in) | ldb, | ||
| real(dp), dimension(ldc,*), intent(inout) | c, | ||
| integer(ilp), intent(in) | ldc, | ||
| real(dp), intent(out) | scale, | ||
| integer(ilp), intent(out) | info ) |
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. A and B must be in Schur canonical form (as returned by DHSEQR), 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.

| subroutine, public la_lapack_eigv_gen2::la_qhsein | ( | character, intent(in) | side, |
| character, intent(in) | eigsrc, | ||
| character, intent(in) | initv, | ||
| logical(lk), dimension(*), intent(inout) | select, | ||
| integer(ilp), intent(in) | n, | ||
| real(qp), dimension(ldh,*), intent(in) | h, | ||
| integer(ilp), intent(in) | ldh, | ||
| real(qp), dimension(*), intent(inout) | wr, | ||
| real(qp), dimension(*), intent(in) | wi, | ||
| real(qp), dimension(ldvl,*), intent(inout) | vl, | ||
| integer(ilp), intent(in) | ldvl, | ||
| real(qp), dimension(ldvr,*), intent(inout) | vr, | ||
| integer(ilp), intent(in) | ldvr, | ||
| integer(ilp), intent(in) | mm, | ||
| integer(ilp), intent(out) | m, | ||
| real(qp), dimension(*), intent(out) | work, | ||
| integer(ilp), dimension(*), intent(out) | ifaill, | ||
| integer(ilp), dimension(*), intent(out) | ifailr, | ||
| integer(ilp), intent(out) | info ) |
QHSEIN: uses inverse iteration to find specified right and/or left eigenvectors of a real upper Hessenberg matrix H. The right eigenvector x and the left eigenvector y of the matrix H corresponding to an eigenvalue w are defined by: H * x = w * x, y**h * H = w * y**h where y**h denotes the conjugate transpose of the vector y.

| subroutine, public la_lapack_eigv_gen2::la_qhseqr | ( | character, intent(in) | job, |
| character, intent(in) | compz, | ||
| integer(ilp), intent(in) | n, | ||
| integer(ilp), intent(in) | ilo, | ||
| integer(ilp), intent(in) | ihi, | ||
| real(qp), dimension(ldh,*), intent(inout) | h, | ||
| integer(ilp), intent(in) | ldh, | ||
| real(qp), dimension(*), intent(out) | wr, | ||
| real(qp), dimension(*), intent(out) | wi, | ||
| real(qp), dimension(ldz,*), intent(inout) | z, | ||
| integer(ilp), intent(in) | ldz, | ||
| real(qp), dimension(*), intent(out) | work, | ||
| integer(ilp), intent(in) | lwork, | ||
| integer(ilp), intent(out) | info ) |
QHSEQR: computes the eigenvalues of a Hessenberg matrix H and, optionally, the matrices T and Z from the Schur decomposition H = Z T Z**T, where T is an upper quasi-triangular matrix (the Schur form), and Z is the orthogonal matrix of Schur vectors. Optionally Z may be postmultiplied into an input orthogonal matrix Q so that this routine can give the Schur factorization of a matrix A which has been reduced to the Hessenberg form H by the orthogonal matrix Q: A = Q*H*Q**T = (QZ)*T*(QZ)**T.

| pure subroutine, public la_lapack_eigv_gen2::la_qlaein | ( | logical(lk), intent(in) | rightv, |
| logical(lk), intent(in) | noinit, | ||
| integer(ilp), intent(in) | n, | ||
| real(qp), dimension(ldh,*), intent(in) | h, | ||
| integer(ilp), intent(in) | ldh, | ||
| real(qp), intent(in) | wr, | ||
| real(qp), intent(in) | wi, | ||
| real(qp), dimension(*), intent(inout) | vr, | ||
| real(qp), dimension(*), intent(inout) | vi, | ||
| real(qp), dimension(ldb,*), intent(out) | b, | ||
| integer(ilp), intent(in) | ldb, | ||
| real(qp), dimension(*), intent(out) | work, | ||
| real(qp), intent(in) | eps3, | ||
| real(qp), intent(in) | smlnum, | ||
| real(qp), intent(in) | bignum, | ||
| integer(ilp), intent(out) | info ) |
QLAEIN: uses inverse iteration to find a right or left eigenvector corresponding to the eigenvalue (WR,WI) of a real upper Hessenberg matrix H.

| pure subroutine, public la_lapack_eigv_gen2::la_qtrevc | ( | character, intent(in) | side, |
| character, intent(in) | howmny, | ||
| logical(lk), dimension(*), intent(inout) | select, | ||
| integer(ilp), intent(in) | n, | ||
| real(qp), dimension(ldt,*), intent(in) | t, | ||
| integer(ilp), intent(in) | ldt, | ||
| real(qp), dimension(ldvl,*), intent(inout) | vl, | ||
| integer(ilp), intent(in) | ldvl, | ||
| real(qp), dimension(ldvr,*), intent(inout) | vr, | ||
| integer(ilp), intent(in) | ldvr, | ||
| integer(ilp), intent(in) | mm, | ||
| integer(ilp), intent(out) | m, | ||
| real(qp), dimension(*), intent(out) | work, | ||
| integer(ilp), intent(out) | info ) |
QTREVC: computes some or all of the right and/or left eigenvectors of a real upper quasi-triangular matrix T. Matrices of this type are produced by the Schur factorization of a real general matrix: A = Q*T*Q**T, as computed by QHSEQR. The right eigenvector x and the left eigenvector y of T corresponding to an eigenvalue w are defined by: T*x = w*x, (y**H)*T = w*(y**H) where y**H denotes the conjugate transpose of y. The eigenvalues are not input to this routine, but are read directly from the diagonal blocks of T. This routine returns the matrices X and/or Y of right and left eigenvectors of T, or the products Q*X and/or Q*Y, where Q is an input matrix. If Q is the orthogonal factor that reduces a matrix A to Schur form T, then Q*X and Q*Y are the matrices of right and left eigenvectors of A.

| pure subroutine, public la_lapack_eigv_gen2::la_qtrevc3 | ( | character, intent(in) | side, |
| character, intent(in) | howmny, | ||
| logical(lk), dimension(*), intent(inout) | select, | ||
| integer(ilp), intent(in) | n, | ||
| real(qp), dimension(ldt,*), intent(in) | t, | ||
| integer(ilp), intent(in) | ldt, | ||
| real(qp), dimension(ldvl,*), intent(inout) | vl, | ||
| integer(ilp), intent(in) | ldvl, | ||
| real(qp), dimension(ldvr,*), intent(inout) | vr, | ||
| integer(ilp), intent(in) | ldvr, | ||
| integer(ilp), intent(in) | mm, | ||
| integer(ilp), intent(out) | m, | ||
| real(qp), dimension(*), intent(out) | work, | ||
| integer(ilp), intent(in) | lwork, | ||
| integer(ilp), intent(out) | info ) |
QTREVC3: computes some or all of the right and/or left eigenvectors of a real upper quasi-triangular matrix T. Matrices of this type are produced by the Schur factorization of a real general matrix: A = Q*T*Q**T, as computed by QHSEQR. The right eigenvector x and the left eigenvector y of T corresponding to an eigenvalue w are defined by: T*x = w*x, (y**T)*T = w*(y**T) where y**T denotes the transpose of the vector y. The eigenvalues are not input to this routine, but are read directly from the diagonal blocks of T. This routine returns the matrices X and/or Y of right and left eigenvectors of T, or the products Q*X and/or Q*Y, where Q is an input matrix. If Q is the orthogonal factor that reduces a matrix A to Schur form T, then Q*X and Q*Y are the matrices of right and left eigenvectors of A. This uses a Level 3 BLAS version of the back transformation.

| subroutine, public la_lapack_eigv_gen2::la_qtrsen | ( | character, intent(in) | job, |
| character, intent(in) | compq, | ||
| logical(lk), dimension(*), intent(in) | select, | ||
| integer(ilp), intent(in) | n, | ||
| real(qp), dimension(ldt,*), intent(inout) | t, | ||
| integer(ilp), intent(in) | ldt, | ||
| real(qp), dimension(ldq,*), intent(inout) | q, | ||
| integer(ilp), intent(in) | ldq, | ||
| real(qp), dimension(*), intent(out) | wr, | ||
| real(qp), dimension(*), intent(out) | wi, | ||
| integer(ilp), intent(out) | m, | ||
| real(qp), intent(out) | s, | ||
| real(qp), intent(out) | sep, | ||
| real(qp), dimension(*), intent(out) | work, | ||
| integer(ilp), intent(in) | lwork, | ||
| integer(ilp), dimension(*), intent(out) | iwork, | ||
| integer(ilp), intent(in) | liwork, | ||
| integer(ilp), intent(out) | info ) |
QTRSEN: reorders the real Schur factorization of a real matrix A = Q*T*Q**T, so that a selected cluster of eigenvalues appears in the leading diagonal blocks of the upper quasi-triangular matrix T, and the leading columns of Q form an orthonormal basis of the corresponding right invariant subspace. Optionally the routine computes the reciprocal condition numbers of the cluster of eigenvalues and/or the invariant subspace. T must be in Schur canonical form (as returned by QHSEQR), 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.

| subroutine, public la_lapack_eigv_gen2::la_qtrsna | ( | character, intent(in) | job, |
| character, intent(in) | howmny, | ||
| logical(lk), dimension(*), intent(in) | select, | ||
| integer(ilp), intent(in) | n, | ||
| real(qp), dimension(ldt,*), intent(in) | t, | ||
| integer(ilp), intent(in) | ldt, | ||
| real(qp), dimension(ldvl,*), intent(in) | vl, | ||
| integer(ilp), intent(in) | ldvl, | ||
| real(qp), dimension(ldvr,*), intent(in) | vr, | ||
| integer(ilp), intent(in) | ldvr, | ||
| real(qp), dimension(*), intent(out) | s, | ||
| real(qp), dimension(*), intent(out) | sep, | ||
| integer(ilp), intent(in) | mm, | ||
| integer(ilp), intent(out) | m, | ||
| real(qp), dimension(ldwork,*), intent(out) | work, | ||
| integer(ilp), intent(in) | ldwork, | ||
| integer(ilp), dimension(*), intent(out) | iwork, | ||
| integer(ilp), intent(out) | info ) |
QTRSNA: estimates reciprocal condition numbers for specified eigenvalues and/or right eigenvectors of a real upper quasi-triangular matrix T (or of any matrix Q*T*Q**T with Q orthogonal). T must be in Schur canonical form (as returned by QHSEQR), 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.

| subroutine, public la_lapack_eigv_gen2::la_qtrsyl | ( | character, intent(in) | trana, |
| character, intent(in) | tranb, | ||
| integer(ilp), intent(in) | isgn, | ||
| integer(ilp), intent(in) | m, | ||
| integer(ilp), intent(in) | n, | ||
| real(qp), dimension(lda,*), intent(in) | a, | ||
| integer(ilp), intent(in) | lda, | ||
| real(qp), dimension(ldb,*), intent(in) | b, | ||
| integer(ilp), intent(in) | ldb, | ||
| real(qp), dimension(ldc,*), intent(inout) | c, | ||
| integer(ilp), intent(in) | ldc, | ||
| real(qp), intent(out) | scale, | ||
| integer(ilp), intent(out) | info ) |
QTRSYL: 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. A and B must be in Schur canonical form (as returned by QHSEQR), 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.

| subroutine, public la_lapack_eigv_gen2::la_shsein | ( | character, intent(in) | side, |
| character, intent(in) | eigsrc, | ||
| character, intent(in) | initv, | ||
| logical(lk), dimension(*), intent(inout) | select, | ||
| integer(ilp), intent(in) | n, | ||
| real(sp), dimension(ldh,*), intent(in) | h, | ||
| integer(ilp), intent(in) | ldh, | ||
| real(sp), dimension(*), intent(inout) | wr, | ||
| real(sp), dimension(*), intent(in) | wi, | ||
| real(sp), dimension(ldvl,*), intent(inout) | vl, | ||
| integer(ilp), intent(in) | ldvl, | ||
| real(sp), dimension(ldvr,*), intent(inout) | vr, | ||
| integer(ilp), intent(in) | ldvr, | ||
| integer(ilp), intent(in) | mm, | ||
| integer(ilp), intent(out) | m, | ||
| real(sp), dimension(*), intent(out) | work, | ||
| integer(ilp), dimension(*), intent(out) | ifaill, | ||
| integer(ilp), dimension(*), intent(out) | ifailr, | ||
| integer(ilp), intent(out) | info ) |
SHSEIN: uses inverse iteration to find specified right and/or left eigenvectors of a real upper Hessenberg matrix H. The right eigenvector x and the left eigenvector y of the matrix H corresponding to an eigenvalue w are defined by: H * x = w * x, y**h * H = w * y**h where y**h denotes the conjugate transpose of the vector y.

| subroutine, public la_lapack_eigv_gen2::la_shseqr | ( | character, intent(in) | job, |
| character, intent(in) | compz, | ||
| integer(ilp), intent(in) | n, | ||
| integer(ilp), intent(in) | ilo, | ||
| integer(ilp), intent(in) | ihi, | ||
| real(sp), dimension(ldh,*), intent(inout) | h, | ||
| integer(ilp), intent(in) | ldh, | ||
| real(sp), dimension(*), intent(out) | wr, | ||
| real(sp), dimension(*), intent(out) | wi, | ||
| real(sp), dimension(ldz,*), intent(inout) | z, | ||
| integer(ilp), intent(in) | ldz, | ||
| real(sp), dimension(*), intent(out) | work, | ||
| integer(ilp), intent(in) | lwork, | ||
| integer(ilp), intent(out) | info ) |
SHSEQR: computes the eigenvalues of a Hessenberg matrix H and, optionally, the matrices T and Z from the Schur decomposition H = Z T Z**T, where T is an upper quasi-triangular matrix (the Schur form), and Z is the orthogonal matrix of Schur vectors. Optionally Z may be postmultiplied into an input orthogonal matrix Q so that this routine can give the Schur factorization of a matrix A which has been reduced to the Hessenberg form H by the orthogonal matrix Q: A = Q*H*Q**T = (QZ)*T*(QZ)**T.

| pure subroutine, public la_lapack_eigv_gen2::la_slaein | ( | logical(lk), intent(in) | rightv, |
| logical(lk), intent(in) | noinit, | ||
| integer(ilp), intent(in) | n, | ||
| real(sp), dimension(ldh,*), intent(in) | h, | ||
| integer(ilp), intent(in) | ldh, | ||
| real(sp), intent(in) | wr, | ||
| real(sp), intent(in) | wi, | ||
| real(sp), dimension(*), intent(inout) | vr, | ||
| real(sp), dimension(*), intent(inout) | vi, | ||
| real(sp), dimension(ldb,*), intent(out) | b, | ||
| integer(ilp), intent(in) | ldb, | ||
| real(sp), dimension(*), intent(out) | work, | ||
| real(sp), intent(in) | eps3, | ||
| real(sp), intent(in) | smlnum, | ||
| real(sp), intent(in) | bignum, | ||
| integer(ilp), intent(out) | info ) |
SLAEIN: uses inverse iteration to find a right or left eigenvector corresponding to the eigenvalue (WR,WI) of a real upper Hessenberg matrix H.

| pure subroutine, public la_lapack_eigv_gen2::la_strevc | ( | character, intent(in) | side, |
| character, intent(in) | howmny, | ||
| logical(lk), dimension(*), intent(inout) | select, | ||
| integer(ilp), intent(in) | n, | ||
| real(sp), dimension(ldt,*), intent(in) | t, | ||
| integer(ilp), intent(in) | ldt, | ||
| real(sp), dimension(ldvl,*), intent(inout) | vl, | ||
| integer(ilp), intent(in) | ldvl, | ||
| real(sp), dimension(ldvr,*), intent(inout) | vr, | ||
| integer(ilp), intent(in) | ldvr, | ||
| integer(ilp), intent(in) | mm, | ||
| integer(ilp), intent(out) | m, | ||
| real(sp), dimension(*), intent(out) | work, | ||
| integer(ilp), intent(out) | info ) |
STREVC: computes some or all of the right and/or left eigenvectors of a real upper quasi-triangular matrix T. Matrices of this type are produced by the Schur factorization of a real general matrix: A = Q*T*Q**T, as computed by SHSEQR. The right eigenvector x and the left eigenvector y of T corresponding to an eigenvalue w are defined by: T*x = w*x, (y**H)*T = w*(y**H) where y**H denotes the conjugate transpose of y. The eigenvalues are not input to this routine, but are read directly from the diagonal blocks of T. This routine returns the matrices X and/or Y of right and left eigenvectors of T, or the products Q*X and/or Q*Y, where Q is an input matrix. If Q is the orthogonal factor that reduces a matrix A to Schur form T, then Q*X and Q*Y are the matrices of right and left eigenvectors of A.

| pure subroutine, public la_lapack_eigv_gen2::la_strevc3 | ( | character, intent(in) | side, |
| character, intent(in) | howmny, | ||
| logical(lk), dimension(*), intent(inout) | select, | ||
| integer(ilp), intent(in) | n, | ||
| real(sp), dimension(ldt,*), intent(in) | t, | ||
| integer(ilp), intent(in) | ldt, | ||
| real(sp), dimension(ldvl,*), intent(inout) | vl, | ||
| integer(ilp), intent(in) | ldvl, | ||
| real(sp), dimension(ldvr,*), intent(inout) | vr, | ||
| integer(ilp), intent(in) | ldvr, | ||
| integer(ilp), intent(in) | mm, | ||
| integer(ilp), intent(out) | m, | ||
| real(sp), dimension(*), intent(out) | work, | ||
| integer(ilp), intent(in) | lwork, | ||
| integer(ilp), intent(out) | info ) |
STREVC3: computes some or all of the right and/or left eigenvectors of a real upper quasi-triangular matrix T. Matrices of this type are produced by the Schur factorization of a real general matrix: A = Q*T*Q**T, as computed by SHSEQR. The right eigenvector x and the left eigenvector y of T corresponding to an eigenvalue w are defined by: T*x = w*x, (y**T)*T = w*(y**T) where y**T denotes the transpose of the vector y. The eigenvalues are not input to this routine, but are read directly from the diagonal blocks of T. This routine returns the matrices X and/or Y of right and left eigenvectors of T, or the products Q*X and/or Q*Y, where Q is an input matrix. If Q is the orthogonal factor that reduces a matrix A to Schur form T, then Q*X and Q*Y are the matrices of right and left eigenvectors of A. This uses a Level 3 BLAS version of the back transformation.

| subroutine, public la_lapack_eigv_gen2::la_strsen | ( | character, intent(in) | job, |
| character, intent(in) | compq, | ||
| logical(lk), dimension(*), intent(in) | select, | ||
| integer(ilp), intent(in) | n, | ||
| real(sp), dimension(ldt,*), intent(inout) | t, | ||
| integer(ilp), intent(in) | ldt, | ||
| real(sp), dimension(ldq,*), intent(inout) | q, | ||
| integer(ilp), intent(in) | ldq, | ||
| real(sp), dimension(*), intent(out) | wr, | ||
| real(sp), dimension(*), intent(out) | wi, | ||
| integer(ilp), intent(out) | m, | ||
| real(sp), intent(out) | s, | ||
| real(sp), intent(out) | sep, | ||
| real(sp), dimension(*), intent(out) | work, | ||
| integer(ilp), intent(in) | lwork, | ||
| integer(ilp), dimension(*), intent(out) | iwork, | ||
| integer(ilp), intent(in) | liwork, | ||
| integer(ilp), intent(out) | info ) |
STRSEN: reorders the real Schur factorization of a real matrix A = Q*T*Q**T, so that a selected cluster of eigenvalues appears in the leading diagonal blocks of the upper quasi-triangular matrix T, and the leading columns of Q form an orthonormal basis of the corresponding right invariant subspace. Optionally the routine computes the reciprocal condition numbers of the cluster of eigenvalues and/or the invariant subspace. T 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.

| subroutine, public la_lapack_eigv_gen2::la_strsna | ( | character, intent(in) | job, |
| character, intent(in) | howmny, | ||
| logical(lk), dimension(*), intent(in) | select, | ||
| integer(ilp), intent(in) | n, | ||
| real(sp), dimension(ldt,*), intent(in) | t, | ||
| integer(ilp), intent(in) | ldt, | ||
| real(sp), dimension(ldvl,*), intent(in) | vl, | ||
| integer(ilp), intent(in) | ldvl, | ||
| real(sp), dimension(ldvr,*), intent(in) | vr, | ||
| integer(ilp), intent(in) | ldvr, | ||
| real(sp), dimension(*), intent(out) | s, | ||
| real(sp), dimension(*), intent(out) | sep, | ||
| integer(ilp), intent(in) | mm, | ||
| integer(ilp), intent(out) | m, | ||
| real(sp), dimension(ldwork,*), intent(out) | work, | ||
| integer(ilp), intent(in) | ldwork, | ||
| integer(ilp), dimension(*), intent(out) | iwork, | ||
| integer(ilp), intent(out) | info ) |
STRSNA: estimates reciprocal condition numbers for specified eigenvalues and/or right eigenvectors of a real upper quasi-triangular matrix T (or of any matrix Q*T*Q**T with Q orthogonal). T 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.

| subroutine, public la_lapack_eigv_gen2::la_strsyl | ( | character, intent(in) | trana, |
| character, intent(in) | tranb, | ||
| integer(ilp), intent(in) | isgn, | ||
| integer(ilp), intent(in) | m, | ||
| integer(ilp), intent(in) | n, | ||
| real(sp), dimension(lda,*), intent(in) | a, | ||
| integer(ilp), intent(in) | lda, | ||
| real(sp), dimension(ldb,*), intent(in) | b, | ||
| integer(ilp), intent(in) | ldb, | ||
| real(sp), dimension(ldc,*), intent(inout) | c, | ||
| integer(ilp), intent(in) | ldc, | ||
| real(sp), intent(out) | scale, | ||
| integer(ilp), intent(out) | info ) |
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. 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.

| subroutine, public la_lapack_eigv_gen2::la_whsein | ( | character, intent(in) | side, |
| character, intent(in) | eigsrc, | ||
| character, intent(in) | initv, | ||
| logical(lk), dimension(*), intent(in) | select, | ||
| integer(ilp), intent(in) | n, | ||
| complex(qp), dimension(ldh,*), intent(in) | h, | ||
| integer(ilp), intent(in) | ldh, | ||
| complex(qp), dimension(*), intent(inout) | w, | ||
| complex(qp), dimension(ldvl,*), intent(inout) | vl, | ||
| integer(ilp), intent(in) | ldvl, | ||
| complex(qp), dimension(ldvr,*), intent(inout) | vr, | ||
| integer(ilp), intent(in) | ldvr, | ||
| integer(ilp), intent(in) | mm, | ||
| integer(ilp), intent(out) | m, | ||
| complex(qp), dimension(*), intent(out) | work, | ||
| real(qp), dimension(*), intent(out) | rwork, | ||
| integer(ilp), dimension(*), intent(out) | ifaill, | ||
| integer(ilp), dimension(*), intent(out) | ifailr, | ||
| integer(ilp), intent(out) | info ) |
WHSEIN: uses inverse iteration to find specified right and/or left eigenvectors of a complex upper Hessenberg matrix H. The right eigenvector x and the left eigenvector y of the matrix H corresponding to an eigenvalue w are defined by: H * x = w * x, y**h * H = w * y**h where y**h denotes the conjugate transpose of the vector y.

| pure subroutine, public la_lapack_eigv_gen2::la_whseqr | ( | character, intent(in) | job, |
| character, intent(in) | compz, | ||
| integer(ilp), intent(in) | n, | ||
| integer(ilp), intent(in) | ilo, | ||
| integer(ilp), intent(in) | ihi, | ||
| complex(qp), dimension(ldh,*), intent(inout) | h, | ||
| integer(ilp), intent(in) | ldh, | ||
| complex(qp), dimension(*), intent(out) | w, | ||
| complex(qp), dimension(ldz,*), intent(inout) | z, | ||
| integer(ilp), intent(in) | ldz, | ||
| complex(qp), dimension(*), intent(out) | work, | ||
| integer(ilp), intent(in) | lwork, | ||
| integer(ilp), intent(out) | info ) |
WHSEQR: computes the eigenvalues of a Hessenberg matrix H and, optionally, the matrices T and Z from the Schur decomposition H = Z T Z**H, where T is an upper triangular matrix (the Schur form), and Z is the unitary matrix of Schur vectors. Optionally Z may be postmultiplied into an input unitary matrix Q so that this routine can give the Schur factorization of a matrix A which has been reduced to the Hessenberg form H by the unitary matrix Q: A = Q*H*Q**H = (QZ)*T*(QZ)**H.

| pure subroutine, public la_lapack_eigv_gen2::la_wlaein | ( | logical(lk), intent(in) | rightv, |
| logical(lk), intent(in) | noinit, | ||
| integer(ilp), intent(in) | n, | ||
| complex(qp), dimension(ldh,*), intent(in) | h, | ||
| integer(ilp), intent(in) | ldh, | ||
| complex(qp), intent(in) | w, | ||
| complex(qp), dimension(*), intent(inout) | v, | ||
| complex(qp), dimension(ldb,*), intent(out) | b, | ||
| integer(ilp), intent(in) | ldb, | ||
| real(qp), dimension(*), intent(out) | rwork, | ||
| real(qp), intent(in) | eps3, | ||
| real(qp), intent(in) | smlnum, | ||
| integer(ilp), intent(out) | info ) |
WLAEIN: uses inverse iteration to find a right or left eigenvector corresponding to the eigenvalue W of a complex upper Hessenberg matrix H.

| pure subroutine, public la_lapack_eigv_gen2::la_wtrevc | ( | character, intent(in) | side, |
| character, intent(in) | howmny, | ||
| logical(lk), dimension(*), intent(in) | select, | ||
| integer(ilp), intent(in) | n, | ||
| complex(qp), dimension(ldt,*), intent(inout) | t, | ||
| integer(ilp), intent(in) | ldt, | ||
| complex(qp), dimension(ldvl,*), intent(inout) | vl, | ||
| integer(ilp), intent(in) | ldvl, | ||
| complex(qp), dimension(ldvr,*), intent(inout) | vr, | ||
| integer(ilp), intent(in) | ldvr, | ||
| integer(ilp), intent(in) | mm, | ||
| integer(ilp), intent(out) | m, | ||
| complex(qp), dimension(*), intent(out) | work, | ||
| real(qp), dimension(*), intent(out) | rwork, | ||
| integer(ilp), intent(out) | info ) |
WTREVC: computes some or all of the right and/or left eigenvectors of a complex upper triangular matrix T. Matrices of this type are produced by the Schur factorization of a complex general matrix: A = Q*T*Q**H, as computed by WHSEQR. The right eigenvector x and the left eigenvector y of T corresponding to an eigenvalue w are defined by: T*x = w*x, (y**H)*T = w*(y**H) where y**H denotes the conjugate transpose of the vector y. The eigenvalues are not input to this routine, but are read directly from the diagonal of T. This routine returns the matrices X and/or Y of right and left eigenvectors of T, or the products Q*X and/or Q*Y, where Q is an input matrix. If Q is the unitary factor that reduces a matrix A to Schur form T, then Q*X and Q*Y are the matrices of right and left eigenvectors of A.

| pure subroutine, public la_lapack_eigv_gen2::la_wtrevc3 | ( | character, intent(in) | side, |
| character, intent(in) | howmny, | ||
| logical(lk), dimension(*), intent(in) | select, | ||
| integer(ilp), intent(in) | n, | ||
| complex(qp), dimension(ldt,*), intent(inout) | t, | ||
| integer(ilp), intent(in) | ldt, | ||
| complex(qp), dimension(ldvl,*), intent(inout) | vl, | ||
| integer(ilp), intent(in) | ldvl, | ||
| complex(qp), dimension(ldvr,*), intent(inout) | vr, | ||
| integer(ilp), intent(in) | ldvr, | ||
| integer(ilp), intent(in) | mm, | ||
| integer(ilp), intent(out) | m, | ||
| complex(qp), dimension(*), intent(out) | work, | ||
| integer(ilp), intent(in) | lwork, | ||
| real(qp), dimension(*), intent(out) | rwork, | ||
| integer(ilp), intent(in) | lrwork, | ||
| integer(ilp), intent(out) | info ) |
WTREVC3: computes some or all of the right and/or left eigenvectors of a complex upper triangular matrix T. Matrices of this type are produced by the Schur factorization of a complex general matrix: A = Q*T*Q**H, as computed by WHSEQR. The right eigenvector x and the left eigenvector y of T corresponding to an eigenvalue w are defined by: T*x = w*x, (y**H)*T = w*(y**H) where y**H denotes the conjugate transpose of the vector y. The eigenvalues are not input to this routine, but are read directly from the diagonal of T. This routine returns the matrices X and/or Y of right and left eigenvectors of T, or the products Q*X and/or Q*Y, where Q is an input matrix. If Q is the unitary factor that reduces a matrix A to Schur form T, then Q*X and Q*Y are the matrices of right and left eigenvectors of A. This uses a Level 3 BLAS version of the back transformation.

| subroutine, public la_lapack_eigv_gen2::la_wtrsen | ( | character, intent(in) | job, |
| character, intent(in) | compq, | ||
| logical(lk), dimension(*), intent(in) | select, | ||
| integer(ilp), intent(in) | n, | ||
| complex(qp), dimension(ldt,*), intent(inout) | t, | ||
| integer(ilp), intent(in) | ldt, | ||
| complex(qp), dimension(ldq,*), intent(inout) | q, | ||
| integer(ilp), intent(in) | ldq, | ||
| complex(qp), dimension(*), intent(out) | w, | ||
| integer(ilp), intent(out) | m, | ||
| real(qp), intent(out) | s, | ||
| real(qp), intent(out) | sep, | ||
| complex(qp), dimension(*), intent(out) | work, | ||
| integer(ilp), intent(in) | lwork, | ||
| integer(ilp), intent(out) | info ) |
WTRSEN: reorders the Schur factorization of a complex matrix A = Q*T*Q**H, so that a selected cluster of eigenvalues appears in the leading positions on the diagonal of the upper triangular matrix T, and the leading columns of Q form an orthonormal basis of the corresponding right invariant subspace. Optionally the routine computes the reciprocal condition numbers of the cluster of eigenvalues and/or the invariant subspace.

| pure subroutine, public la_lapack_eigv_gen2::la_wtrsna | ( | character, intent(in) | job, |
| character, intent(in) | howmny, | ||
| logical(lk), dimension(*), intent(in) | select, | ||
| integer(ilp), intent(in) | n, | ||
| complex(qp), dimension(ldt,*), intent(in) | t, | ||
| integer(ilp), intent(in) | ldt, | ||
| complex(qp), dimension(ldvl,*), intent(in) | vl, | ||
| integer(ilp), intent(in) | ldvl, | ||
| complex(qp), dimension(ldvr,*), intent(in) | vr, | ||
| integer(ilp), intent(in) | ldvr, | ||
| real(qp), dimension(*), intent(out) | s, | ||
| real(qp), dimension(*), intent(out) | sep, | ||
| integer(ilp), intent(in) | mm, | ||
| integer(ilp), intent(out) | m, | ||
| complex(qp), dimension(ldwork,*), intent(out) | work, | ||
| integer(ilp), intent(in) | ldwork, | ||
| real(qp), dimension(*), intent(out) | rwork, | ||
| integer(ilp), intent(out) | info ) |
WTRSNA: estimates reciprocal condition numbers for specified eigenvalues and/or right eigenvectors of a complex upper triangular matrix T (or of any matrix Q*T*Q**H with Q unitary).

| subroutine, public la_lapack_eigv_gen2::la_wtrsyl | ( | character, intent(in) | trana, |
| character, intent(in) | tranb, | ||
| integer(ilp), intent(in) | isgn, | ||
| integer(ilp), intent(in) | m, | ||
| integer(ilp), intent(in) | n, | ||
| complex(qp), dimension(lda,*), intent(in) | a, | ||
| integer(ilp), intent(in) | lda, | ||
| complex(qp), dimension(ldb,*), intent(in) | b, | ||
| integer(ilp), intent(in) | ldb, | ||
| complex(qp), dimension(ldc,*), intent(inout) | c, | ||
| integer(ilp), intent(in) | ldc, | ||
| real(qp), intent(out) | scale, | ||
| integer(ilp), intent(out) | info ) |
WTRSYL: 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.

| subroutine, public la_lapack_eigv_gen2::la_zhsein | ( | character, intent(in) | side, |
| character, intent(in) | eigsrc, | ||
| character, intent(in) | initv, | ||
| logical(lk), dimension(*), intent(in) | select, | ||
| integer(ilp), intent(in) | n, | ||
| complex(dp), dimension(ldh,*), intent(in) | h, | ||
| integer(ilp), intent(in) | ldh, | ||
| complex(dp), dimension(*), intent(inout) | w, | ||
| complex(dp), dimension(ldvl,*), intent(inout) | vl, | ||
| integer(ilp), intent(in) | ldvl, | ||
| complex(dp), dimension(ldvr,*), intent(inout) | vr, | ||
| integer(ilp), intent(in) | ldvr, | ||
| integer(ilp), intent(in) | mm, | ||
| integer(ilp), intent(out) | m, | ||
| complex(dp), dimension(*), intent(out) | work, | ||
| real(dp), dimension(*), intent(out) | rwork, | ||
| integer(ilp), dimension(*), intent(out) | ifaill, | ||
| integer(ilp), dimension(*), intent(out) | ifailr, | ||
| integer(ilp), intent(out) | info ) |
ZHSEIN: uses inverse iteration to find specified right and/or left eigenvectors of a complex upper Hessenberg matrix H. The right eigenvector x and the left eigenvector y of the matrix H corresponding to an eigenvalue w are defined by: H * x = w * x, y**h * H = w * y**h where y**h denotes the conjugate transpose of the vector y.

| pure subroutine, public la_lapack_eigv_gen2::la_zhseqr | ( | character, intent(in) | job, |
| character, intent(in) | compz, | ||
| integer(ilp), intent(in) | n, | ||
| integer(ilp), intent(in) | ilo, | ||
| integer(ilp), intent(in) | ihi, | ||
| complex(dp), dimension(ldh,*), intent(inout) | h, | ||
| integer(ilp), intent(in) | ldh, | ||
| complex(dp), dimension(*), intent(out) | w, | ||
| complex(dp), dimension(ldz,*), intent(inout) | z, | ||
| integer(ilp), intent(in) | ldz, | ||
| complex(dp), dimension(*), intent(out) | work, | ||
| integer(ilp), intent(in) | lwork, | ||
| integer(ilp), intent(out) | info ) |
ZHSEQR: computes the eigenvalues of a Hessenberg matrix H and, optionally, the matrices T and Z from the Schur decomposition H = Z T Z**H, where T is an upper triangular matrix (the Schur form), and Z is the unitary matrix of Schur vectors. Optionally Z may be postmultiplied into an input unitary matrix Q so that this routine can give the Schur factorization of a matrix A which has been reduced to the Hessenberg form H by the unitary matrix Q: A = Q*H*Q**H = (QZ)*T*(QZ)**H.

| pure subroutine, public la_lapack_eigv_gen2::la_zlaein | ( | logical(lk), intent(in) | rightv, |
| logical(lk), intent(in) | noinit, | ||
| integer(ilp), intent(in) | n, | ||
| complex(dp), dimension(ldh,*), intent(in) | h, | ||
| integer(ilp), intent(in) | ldh, | ||
| complex(dp), intent(in) | w, | ||
| complex(dp), dimension(*), intent(inout) | v, | ||
| complex(dp), dimension(ldb,*), intent(out) | b, | ||
| integer(ilp), intent(in) | ldb, | ||
| real(dp), dimension(*), intent(out) | rwork, | ||
| real(dp), intent(in) | eps3, | ||
| real(dp), intent(in) | smlnum, | ||
| integer(ilp), intent(out) | info ) |
ZLAEIN: uses inverse iteration to find a right or left eigenvector corresponding to the eigenvalue W of a complex upper Hessenberg matrix H.

| pure subroutine, public la_lapack_eigv_gen2::la_ztrevc | ( | character, intent(in) | side, |
| character, intent(in) | howmny, | ||
| logical(lk), dimension(*), intent(in) | select, | ||
| integer(ilp), intent(in) | n, | ||
| complex(dp), dimension(ldt,*), intent(inout) | t, | ||
| integer(ilp), intent(in) | ldt, | ||
| complex(dp), dimension(ldvl,*), intent(inout) | vl, | ||
| integer(ilp), intent(in) | ldvl, | ||
| complex(dp), dimension(ldvr,*), intent(inout) | vr, | ||
| integer(ilp), intent(in) | ldvr, | ||
| integer(ilp), intent(in) | mm, | ||
| integer(ilp), intent(out) | m, | ||
| complex(dp), dimension(*), intent(out) | work, | ||
| real(dp), dimension(*), intent(out) | rwork, | ||
| integer(ilp), intent(out) | info ) |
ZTREVC: computes some or all of the right and/or left eigenvectors of a complex upper triangular matrix T. Matrices of this type are produced by the Schur factorization of a complex general matrix: A = Q*T*Q**H, as computed by ZHSEQR. The right eigenvector x and the left eigenvector y of T corresponding to an eigenvalue w are defined by: T*x = w*x, (y**H)*T = w*(y**H) where y**H denotes the conjugate transpose of the vector y. The eigenvalues are not input to this routine, but are read directly from the diagonal of T. This routine returns the matrices X and/or Y of right and left eigenvectors of T, or the products Q*X and/or Q*Y, where Q is an input matrix. If Q is the unitary factor that reduces a matrix A to Schur form T, then Q*X and Q*Y are the matrices of right and left eigenvectors of A.

| pure subroutine, public la_lapack_eigv_gen2::la_ztrevc3 | ( | character, intent(in) | side, |
| character, intent(in) | howmny, | ||
| logical(lk), dimension(*), intent(in) | select, | ||
| integer(ilp), intent(in) | n, | ||
| complex(dp), dimension(ldt,*), intent(inout) | t, | ||
| integer(ilp), intent(in) | ldt, | ||
| complex(dp), dimension(ldvl,*), intent(inout) | vl, | ||
| integer(ilp), intent(in) | ldvl, | ||
| complex(dp), dimension(ldvr,*), intent(inout) | vr, | ||
| integer(ilp), intent(in) | ldvr, | ||
| integer(ilp), intent(in) | mm, | ||
| integer(ilp), intent(out) | m, | ||
| complex(dp), dimension(*), intent(out) | work, | ||
| integer(ilp), intent(in) | lwork, | ||
| real(dp), dimension(*), intent(out) | rwork, | ||
| integer(ilp), intent(in) | lrwork, | ||
| integer(ilp), intent(out) | info ) |
ZTREVC3: computes some or all of the right and/or left eigenvectors of a complex upper triangular matrix T. Matrices of this type are produced by the Schur factorization of a complex general matrix: A = Q*T*Q**H, as computed by ZHSEQR. The right eigenvector x and the left eigenvector y of T corresponding to an eigenvalue w are defined by: T*x = w*x, (y**H)*T = w*(y**H) where y**H denotes the conjugate transpose of the vector y. The eigenvalues are not input to this routine, but are read directly from the diagonal of T. This routine returns the matrices X and/or Y of right and left eigenvectors of T, or the products Q*X and/or Q*Y, where Q is an input matrix. If Q is the unitary factor that reduces a matrix A to Schur form T, then Q*X and Q*Y are the matrices of right and left eigenvectors of A. This uses a Level 3 BLAS version of the back transformation.

| subroutine, public la_lapack_eigv_gen2::la_ztrsen | ( | character, intent(in) | job, |
| character, intent(in) | compq, | ||
| logical(lk), dimension(*), intent(in) | select, | ||
| integer(ilp), intent(in) | n, | ||
| complex(dp), dimension(ldt,*), intent(inout) | t, | ||
| integer(ilp), intent(in) | ldt, | ||
| complex(dp), dimension(ldq,*), intent(inout) | q, | ||
| integer(ilp), intent(in) | ldq, | ||
| complex(dp), dimension(*), intent(out) | w, | ||
| integer(ilp), intent(out) | m, | ||
| real(dp), intent(out) | s, | ||
| real(dp), intent(out) | sep, | ||
| complex(dp), dimension(*), intent(out) | work, | ||
| integer(ilp), intent(in) | lwork, | ||
| integer(ilp), intent(out) | info ) |
ZTRSEN: reorders the Schur factorization of a complex matrix A = Q*T*Q**H, so that a selected cluster of eigenvalues appears in the leading positions on the diagonal of the upper triangular matrix T, and the leading columns of Q form an orthonormal basis of the corresponding right invariant subspace. Optionally the routine computes the reciprocal condition numbers of the cluster of eigenvalues and/or the invariant subspace.

| pure subroutine, public la_lapack_eigv_gen2::la_ztrsna | ( | character, intent(in) | job, |
| character, intent(in) | howmny, | ||
| logical(lk), dimension(*), intent(in) | select, | ||
| integer(ilp), intent(in) | n, | ||
| complex(dp), dimension(ldt,*), intent(in) | t, | ||
| integer(ilp), intent(in) | ldt, | ||
| complex(dp), dimension(ldvl,*), intent(in) | vl, | ||
| integer(ilp), intent(in) | ldvl, | ||
| complex(dp), dimension(ldvr,*), intent(in) | vr, | ||
| integer(ilp), intent(in) | ldvr, | ||
| real(dp), dimension(*), intent(out) | s, | ||
| real(dp), dimension(*), intent(out) | sep, | ||
| integer(ilp), intent(in) | mm, | ||
| integer(ilp), intent(out) | m, | ||
| complex(dp), dimension(ldwork,*), intent(out) | work, | ||
| integer(ilp), intent(in) | ldwork, | ||
| real(dp), dimension(*), intent(out) | rwork, | ||
| integer(ilp), intent(out) | info ) |
ZTRSNA: estimates reciprocal condition numbers for specified eigenvalues and/or right eigenvectors of a complex upper triangular matrix T (or of any matrix Q*T*Q**H with Q unitary).

| subroutine, public la_lapack_eigv_gen2::la_ztrsyl | ( | character, intent(in) | trana, |
| character, intent(in) | tranb, | ||
| integer(ilp), intent(in) | isgn, | ||
| integer(ilp), intent(in) | m, | ||
| integer(ilp), intent(in) | n, | ||
| complex(dp), dimension(lda,*), intent(in) | a, | ||
| integer(ilp), intent(in) | lda, | ||
| complex(dp), dimension(ldb,*), intent(in) | b, | ||
| integer(ilp), intent(in) | ldb, | ||
| complex(dp), dimension(ldc,*), intent(inout) | c, | ||
| integer(ilp), intent(in) | ldc, | ||
| real(dp), intent(out) | scale, | ||
| integer(ilp), intent(out) | info ) |
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.
