Functions | |
| subroutine | sptcon (n, d, e, anorm, rcond, work, info) |
| SPTCON | |
| subroutine | spteqr (compz, n, d, e, z, ldz, work, info) |
| SPTEQR | |
| subroutine | sptrfs (n, nrhs, d, e, df, ef, b, ldb, x, ldx, ferr, berr, work, info) |
| SPTRFS | |
| subroutine | spttrs (n, nrhs, d, e, b, ldb, info) |
| SPTTRS | |
| subroutine | sptts2 (n, nrhs, d, e, b, ldb) |
| SPTTS2 solves a tridiagonal system of the form AX=B using the L D LH factorization computed by spttrf. | |
This is the group of real computational functions for PT matrices
| subroutine sptcon | ( | integer | n, |
| real, dimension( * ) | d, | ||
| real, dimension( * ) | e, | ||
| real | anorm, | ||
| real | rcond, | ||
| real, dimension( * ) | work, | ||
| integer | info ) |
SPTCON
Download SPTCON + dependencies [TGZ] [ZIP] [TXT]
!> !> SPTCON computes the reciprocal of the condition number (in the !> 1-norm) of a real symmetric positive definite tridiagonal matrix !> using the factorization A = L*D*L**T or A = U**T*D*U computed by !> SPTTRF. !> !> Norm(inv(A)) is computed by a direct method, and the reciprocal of !> the condition number is computed as !> RCOND = 1 / (ANORM * norm(inv(A))). !>
| [in] | N | !> N is INTEGER !> The order of the matrix A. N >= 0. !> |
| [in] | D | !> D is REAL array, dimension (N) !> The n diagonal elements of the diagonal matrix D from the !> factorization of A, as computed by SPTTRF. !> |
| [in] | E | !> E is REAL array, dimension (N-1) !> The (n-1) off-diagonal elements of the unit bidiagonal factor !> U or L from the factorization of A, as computed by SPTTRF. !> |
| [in] | ANORM | !> ANORM is REAL !> The 1-norm of the original matrix A. !> |
| [out] | RCOND | !> RCOND is REAL !> The reciprocal of the condition number of the matrix A, !> computed as RCOND = 1/(ANORM * AINVNM), where AINVNM is the !> 1-norm of inv(A) computed in this routine. !> |
| [out] | WORK | !> WORK is REAL array, dimension (N) !> |
| [out] | INFO | !> INFO is INTEGER !> = 0: successful exit !> < 0: if INFO = -i, the i-th argument had an illegal value !> |
!> !> The method used is described in Nicholas J. Higham, , SIAM J. Sci. Stat. Comput., Vol. 7, No. 1, January 1986. !>
Definition at line 117 of file sptcon.f.
| subroutine spteqr | ( | character | compz, |
| integer | n, | ||
| real, dimension( * ) | d, | ||
| real, dimension( * ) | e, | ||
| real, dimension( ldz, * ) | z, | ||
| integer | ldz, | ||
| real, dimension( * ) | work, | ||
| integer | info ) |
SPTEQR
Download SPTEQR + dependencies [TGZ] [ZIP] [TXT]
!> !> SPTEQR computes all eigenvalues and, optionally, eigenvectors of a !> symmetric positive definite tridiagonal matrix by first factoring the !> matrix using SPTTRF, and then calling SBDSQR to compute the singular !> values of the bidiagonal factor. !> !> This routine computes the eigenvalues of the positive definite !> tridiagonal matrix to high relative accuracy. This means that if the !> eigenvalues range over many orders of magnitude in size, then the !> small eigenvalues and corresponding eigenvectors will be computed !> more accurately than, for example, with the standard QR method. !> !> The eigenvectors of a full or band symmetric positive definite matrix !> can also be found if SSYTRD, SSPTRD, or SSBTRD has been used to !> reduce this matrix to tridiagonal form. (The reduction to tridiagonal !> form, however, may preclude the possibility of obtaining high !> relative accuracy in the small eigenvalues of the original matrix, if !> these eigenvalues range over many orders of magnitude.) !>
| [in] | COMPZ | !> COMPZ is CHARACTER*1 !> = 'N': Compute eigenvalues only. !> = 'V': Compute eigenvectors of original symmetric !> matrix also. Array Z contains the orthogonal !> matrix used to reduce the original matrix to !> tridiagonal form. !> = 'I': Compute eigenvectors of tridiagonal matrix also. !> |
| [in] | N | !> N is INTEGER !> The order of the matrix. N >= 0. !> |
| [in,out] | D | !> D is REAL array, dimension (N) !> On entry, the n diagonal elements of the tridiagonal !> matrix. !> On normal exit, D contains the eigenvalues, in descending !> order. !> |
| [in,out] | E | !> E is REAL array, dimension (N-1) !> On entry, the (n-1) subdiagonal elements of the tridiagonal !> matrix. !> On exit, E has been destroyed. !> |
| [in,out] | Z | !> Z is REAL array, dimension (LDZ, N) !> On entry, if COMPZ = 'V', the orthogonal matrix used in the !> reduction to tridiagonal form. !> On exit, if COMPZ = 'V', the orthonormal eigenvectors of the !> original symmetric matrix; !> if COMPZ = 'I', the orthonormal eigenvectors of the !> tridiagonal matrix. !> If INFO > 0 on exit, Z contains the eigenvectors associated !> with only the stored eigenvalues. !> If COMPZ = 'N', then Z is not referenced. !> |
| [in] | LDZ | !> LDZ is INTEGER !> The leading dimension of the array Z. LDZ >= 1, and if !> COMPZ = 'V' or 'I', LDZ >= max(1,N). !> |
| [out] | WORK | !> WORK is REAL array, dimension (4*N) !> |
| [out] | INFO | !> INFO is INTEGER !> = 0: successful exit. !> < 0: if INFO = -i, the i-th argument had an illegal value. !> > 0: if INFO = i, and i is: !> <= N the Cholesky factorization of the matrix could !> not be performed because the i-th principal minor !> was not positive definite. !> > N the SVD algorithm failed to converge; !> if INFO = N+i, i off-diagonal elements of the !> bidiagonal factor did not converge to zero. !> |
Definition at line 144 of file spteqr.f.
| subroutine sptrfs | ( | integer | n, |
| integer | nrhs, | ||
| real, dimension( * ) | d, | ||
| real, dimension( * ) | e, | ||
| real, dimension( * ) | df, | ||
| real, dimension( * ) | ef, | ||
| real, dimension( ldb, * ) | b, | ||
| integer | ldb, | ||
| real, dimension( ldx, * ) | x, | ||
| integer | ldx, | ||
| real, dimension( * ) | ferr, | ||
| real, dimension( * ) | berr, | ||
| real, dimension( * ) | work, | ||
| integer | info ) |
SPTRFS
Download SPTRFS + dependencies [TGZ] [ZIP] [TXT]
!> !> SPTRFS improves the computed solution to a system of linear !> equations when the coefficient matrix is symmetric positive definite !> and tridiagonal, and provides error bounds and backward error !> estimates for the solution. !>
| [in] | N | !> N is INTEGER !> The order of the matrix A. N >= 0. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of right hand sides, i.e., the number of columns !> of the matrix B. NRHS >= 0. !> |
| [in] | D | !> D is REAL array, dimension (N) !> The n diagonal elements of the tridiagonal matrix A. !> |
| [in] | E | !> E is REAL array, dimension (N-1) !> The (n-1) subdiagonal elements of the tridiagonal matrix A. !> |
| [in] | DF | !> DF is REAL array, dimension (N) !> The n diagonal elements of the diagonal matrix D from the !> factorization computed by SPTTRF. !> |
| [in] | EF | !> EF is REAL array, dimension (N-1) !> The (n-1) subdiagonal elements of the unit bidiagonal factor !> L from the factorization computed by SPTTRF. !> |
| [in] | B | !> B is REAL array, dimension (LDB,NRHS) !> The right hand side matrix B. !> |
| [in] | LDB | !> LDB is INTEGER !> The leading dimension of the array B. LDB >= max(1,N). !> |
| [in,out] | X | !> X is REAL array, dimension (LDX,NRHS) !> On entry, the solution matrix X, as computed by SPTTRS. !> On exit, the improved solution matrix X. !> |
| [in] | LDX | !> LDX is INTEGER !> The leading dimension of the array X. LDX >= max(1,N). !> |
| [out] | FERR | !> FERR is REAL array, dimension (NRHS) !> The forward error bound for each solution vector !> X(j) (the j-th column of the solution matrix X). !> If XTRUE is the true solution corresponding to X(j), FERR(j) !> is an estimated upper bound for the magnitude of the largest !> element in (X(j) - XTRUE) divided by the magnitude of the !> largest element in X(j). !> |
| [out] | BERR | !> BERR is REAL array, dimension (NRHS) !> The componentwise relative backward error of each solution !> vector X(j) (i.e., the smallest relative change in !> any element of A or B that makes X(j) an exact solution). !> |
| [out] | WORK | !> WORK is REAL array, dimension (2*N) !> |
| [out] | INFO | !> INFO is INTEGER !> = 0: successful exit !> < 0: if INFO = -i, the i-th argument had an illegal value !> |
!> ITMAX is the maximum number of steps of iterative refinement. !>
Definition at line 161 of file sptrfs.f.
| subroutine spttrs | ( | integer | n, |
| integer | nrhs, | ||
| real, dimension( * ) | d, | ||
| real, dimension( * ) | e, | ||
| real, dimension( ldb, * ) | b, | ||
| integer | ldb, | ||
| integer | info ) |
SPTTRS
Download SPTTRS + dependencies [TGZ] [ZIP] [TXT]
!> !> SPTTRS solves a tridiagonal system of the form !> A * X = B !> using the L*D*L**T factorization of A computed by SPTTRF. D is a !> diagonal matrix specified in the vector D, L is a unit bidiagonal !> matrix whose subdiagonal is specified in the vector E, and X and B !> are N by NRHS matrices. !>
| [in] | N | !> N is INTEGER !> The order of the tridiagonal matrix A. N >= 0. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of right hand sides, i.e., the number of columns !> of the matrix B. NRHS >= 0. !> |
| [in] | D | !> D is REAL array, dimension (N) !> The n diagonal elements of the diagonal matrix D from the !> L*D*L**T factorization of A. !> |
| [in] | E | !> E is REAL array, dimension (N-1) !> The (n-1) subdiagonal elements of the unit bidiagonal factor !> L from the L*D*L**T factorization of A. E can also be regarded !> as the superdiagonal of the unit bidiagonal factor U from the !> factorization A = U**T*D*U. !> |
| [in,out] | B | !> B is REAL array, dimension (LDB,NRHS) !> On entry, the right hand side vectors B for the system of !> linear equations. !> On exit, the solution vectors, X. !> |
| [in] | LDB | !> LDB is INTEGER !> The leading dimension of the array B. LDB >= max(1,N). !> |
| [out] | INFO | !> INFO is INTEGER !> = 0: successful exit !> < 0: if INFO = -k, the k-th argument had an illegal value !> |
Definition at line 108 of file spttrs.f.
| subroutine sptts2 | ( | integer | n, |
| integer | nrhs, | ||
| real, dimension( * ) | d, | ||
| real, dimension( * ) | e, | ||
| real, dimension( ldb, * ) | b, | ||
| integer | ldb ) |
SPTTS2 solves a tridiagonal system of the form AX=B using the L D LH factorization computed by spttrf.
Download SPTTS2 + dependencies [TGZ] [ZIP] [TXT]
!> !> SPTTS2 solves a tridiagonal system of the form !> A * X = B !> using the L*D*L**T factorization of A computed by SPTTRF. D is a !> diagonal matrix specified in the vector D, L is a unit bidiagonal !> matrix whose subdiagonal is specified in the vector E, and X and B !> are N by NRHS matrices. !>
| [in] | N | !> N is INTEGER !> The order of the tridiagonal matrix A. N >= 0. !> |
| [in] | NRHS | !> NRHS is INTEGER !> The number of right hand sides, i.e., the number of columns !> of the matrix B. NRHS >= 0. !> |
| [in] | D | !> D is REAL array, dimension (N) !> The n diagonal elements of the diagonal matrix D from the !> L*D*L**T factorization of A. !> |
| [in] | E | !> E is REAL array, dimension (N-1) !> The (n-1) subdiagonal elements of the unit bidiagonal factor !> L from the L*D*L**T factorization of A. E can also be regarded !> as the superdiagonal of the unit bidiagonal factor U from the !> factorization A = U**T*D*U. !> |
| [in,out] | B | !> B is REAL array, dimension (LDB,NRHS) !> On entry, the right hand side vectors B for the system of !> linear equations. !> On exit, the solution vectors, X. !> |
| [in] | LDB | !> LDB is INTEGER !> The leading dimension of the array B. LDB >= max(1,N). !> |
Definition at line 101 of file sptts2.f.