Functions | |
| subroutine | zptsv (n, nrhs, d, e, b, ldb, info) |
| ZPTSV computes the solution to system of linear equations A * X = B for PT matrices | |
| subroutine | zptsvx (fact, n, nrhs, d, e, df, ef, b, ldb, x, ldx, rcond, ferr, berr, work, rwork, info) |
| ZPTSVX computes the solution to system of linear equations A * X = B for PT matrices | |
This is the group of complex16 solve driver functions for PT matrices
| subroutine zptsv | ( | integer | n, |
| integer | nrhs, | ||
| double precision, dimension( * ) | d, | ||
| complex*16, dimension( * ) | e, | ||
| complex*16, dimension( ldb, * ) | b, | ||
| integer | ldb, | ||
| integer | info ) |
ZPTSV computes the solution to system of linear equations A * X = B for PT matrices
Download ZPTSV + dependencies [TGZ] [ZIP] [TXT]
!> !> ZPTSV computes the solution to a complex system of linear equations !> A*X = B, where A is an N-by-N Hermitian positive definite tridiagonal !> matrix, and X and B are N-by-NRHS matrices. !> !> A is factored as A = L*D*L**H, and the factored form of A is then !> used to solve the system of equations. !>
| [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,out] | D | !> D is DOUBLE PRECISION array, dimension (N) !> On entry, the n diagonal elements of the tridiagonal matrix !> A. On exit, the n diagonal elements of the diagonal matrix !> D from the factorization A = L*D*L**H. !> |
| [in,out] | E | !> E is COMPLEX*16 array, dimension (N-1) !> On entry, the (n-1) subdiagonal elements of the tridiagonal !> matrix A. On exit, the (n-1) subdiagonal elements of the !> unit bidiagonal factor L from the L*D*L**H factorization of !> A. E can also be regarded as the superdiagonal of the unit !> bidiagonal factor U from the U**H*D*U factorization of A. !> |
| [in,out] | B | !> B is COMPLEX*16 array, dimension (LDB,NRHS) !> On entry, the N-by-NRHS right hand side matrix B. !> On exit, if INFO = 0, the N-by-NRHS solution matrix 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 = -i, the i-th argument had an illegal value !> > 0: if INFO = i, the leading minor of order i is not !> positive definite, and the solution has not been !> computed. The factorization has not been completed !> unless i = N. !> |
Definition at line 114 of file zptsv.f.
| subroutine zptsvx | ( | character | fact, |
| integer | n, | ||
| integer | nrhs, | ||
| double precision, dimension( * ) | d, | ||
| complex*16, dimension( * ) | e, | ||
| double precision, dimension( * ) | df, | ||
| complex*16, dimension( * ) | ef, | ||
| complex*16, dimension( ldb, * ) | b, | ||
| integer | ldb, | ||
| complex*16, dimension( ldx, * ) | x, | ||
| integer | ldx, | ||
| double precision | rcond, | ||
| double precision, dimension( * ) | ferr, | ||
| double precision, dimension( * ) | berr, | ||
| complex*16, dimension( * ) | work, | ||
| double precision, dimension( * ) | rwork, | ||
| integer | info ) |
ZPTSVX computes the solution to system of linear equations A * X = B for PT matrices
Download ZPTSVX + dependencies [TGZ] [ZIP] [TXT]
!> !> ZPTSVX uses the factorization A = L*D*L**H to compute the solution !> to a complex system of linear equations A*X = B, where A is an !> N-by-N Hermitian positive definite tridiagonal matrix and X and B !> are N-by-NRHS matrices. !> !> Error bounds on the solution and a condition estimate are also !> provided. !>
!> !> The following steps are performed: !> !> 1. If FACT = 'N', the matrix A is factored as A = L*D*L**H, where L !> is a unit lower bidiagonal matrix and D is diagonal. The !> factorization can also be regarded as having the form !> A = U**H*D*U. !> !> 2. If the leading i-by-i principal minor is not positive definite, !> then the routine returns with INFO = i. Otherwise, the factored !> form of A is used to estimate the condition number of the matrix !> A. If the reciprocal of the condition number is less than machine !> precision, INFO = N+1 is returned as a warning, but the routine !> still goes on to solve for X and compute error bounds as !> described below. !> !> 3. The system of equations is solved for X using the factored form !> of A. !> !> 4. Iterative refinement is applied to improve the computed solution !> matrix and calculate error bounds and backward error estimates !> for it. !>
| [in] | FACT | !> FACT is CHARACTER*1 !> Specifies whether or not the factored form of the matrix !> A is supplied on entry. !> = 'F': On entry, DF and EF contain the factored form of A. !> D, E, DF, and EF will not be modified. !> = 'N': The matrix A will be copied to DF and EF and !> factored. !> |
| [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 matrices B and X. NRHS >= 0. !> |
| [in] | D | !> D is DOUBLE PRECISION array, dimension (N) !> The n diagonal elements of the tridiagonal matrix A. !> |
| [in] | E | !> E is COMPLEX*16 array, dimension (N-1) !> The (n-1) subdiagonal elements of the tridiagonal matrix A. !> |
| [in,out] | DF | !> DF is DOUBLE PRECISION array, dimension (N) !> If FACT = 'F', then DF is an input argument and on entry !> contains the n diagonal elements of the diagonal matrix D !> from the L*D*L**H factorization of A. !> If FACT = 'N', then DF is an output argument and on exit !> contains the n diagonal elements of the diagonal matrix D !> from the L*D*L**H factorization of A. !> |
| [in,out] | EF | !> EF is COMPLEX*16 array, dimension (N-1) !> If FACT = 'F', then EF is an input argument and on entry !> contains the (n-1) subdiagonal elements of the unit !> bidiagonal factor L from the L*D*L**H factorization of A. !> If FACT = 'N', then EF is an output argument and on exit !> contains the (n-1) subdiagonal elements of the unit !> bidiagonal factor L from the L*D*L**H factorization of A. !> |
| [in] | B | !> B is COMPLEX*16 array, dimension (LDB,NRHS) !> The N-by-NRHS right hand side matrix B. !> |
| [in] | LDB | !> LDB is INTEGER !> The leading dimension of the array B. LDB >= max(1,N). !> |
| [out] | X | !> X is COMPLEX*16 array, dimension (LDX,NRHS) !> If INFO = 0 or INFO = N+1, the N-by-NRHS solution matrix X. !> |
| [in] | LDX | !> LDX is INTEGER !> The leading dimension of the array X. LDX >= max(1,N). !> |
| [out] | RCOND | !> RCOND is DOUBLE PRECISION !> The reciprocal condition number of the matrix A. If RCOND !> is less than the machine precision (in particular, if !> RCOND = 0), the matrix is singular to working precision. !> This condition is indicated by a return code of INFO > 0. !> |
| [out] | FERR | !> FERR is DOUBLE PRECISION 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 DOUBLE PRECISION 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 COMPLEX*16 array, dimension (N) !> |
| [out] | RWORK | !> RWORK is DOUBLE PRECISION array, dimension (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 leading minor of order i of A is !> not positive definite, so the factorization !> could not be completed, and the solution has not !> been computed. RCOND = 0 is returned. !> = N+1: U is nonsingular, but RCOND is less than machine !> precision, meaning that the matrix is singular !> to working precision. Nevertheless, the !> solution and error bounds are computed because !> there are a number of situations where the !> computed solution can be more accurate than the !> value of RCOND would suggest. !> |
Definition at line 232 of file zptsvx.f.