|
|
◆ ZHsrIcSolve()
| Sub ZHsrIcSolve |
( |
N As |
Long, |
|
|
Val() As |
Complex, |
|
|
Rowptr() As |
Long, |
|
|
Colind() As |
Long, |
|
|
Idiag() As |
Long, |
|
|
B() As |
Complex, |
|
|
X() As |
Complex, |
|
|
Optional Info As |
Long, |
|
|
Optional ByVal Uplo As |
String = "L", |
|
|
Optional Base As |
Long = -1 |
|
) |
| |
Incomplete Cholesky preconditioner (IC) (Hermitian positive definite matrices) (CSR)
- Purpose
- This routine is the incomplete Cholesky preconditioner (IC) for the Hermitian positive definite coefficient matrix of the sparse linear equations. It solves the equation Mx = b, where M is the preconditioner matrix (L*D*L^H or U^H*D*U).
- Parameters
-
| [in] | N | Dimension of preconditioner matrix. (N >= 0) (if N = 0, returns without computation) |
| [in] | Val() | Array Val(LVal - 1) (LVal >= Nnz) (Nnz is number of nonzero elements)
Values of non-zero elements of preconditioner matrix. |
| [in] | Rowptr() | Array Rowptr(LRowptr - 1) (LRowptr >= N + 1)
Row pointers of preconditioner matrix. |
| [in] | Colind() | Array Colind(LColind - 1) (LColind >= Nnz)
Column indices of preconditioner matrix. |
| [in] | Idiag() | Array Idiag(LIdiag) (LIdiag >= N)
Indices of diagonal elements. |
| [in] | B() | Array B(LB - 1) (LB >= N)
Right hand side vector b. |
| [out] | X() | Array X(LX - 1) (LX >= N)
Solution vector x. |
| [out] | Info | (Optional)
= 0: Successful exit.
= i < 0: The (-i)-th argument is invalid.
= j > 0: Matrix is singular (j-th diagonal element is zero). |
| [in] | Uplo | (Optional)
= "U": Upper trianglar matrix U and diagonal matrix D are stored as the preconditioner matrix.
= "L": Lower trianglar matrix L and diagonal matrix D are stored as the preconditioner matrix.
(default = "L") |
| [in] | Base | (Optional)
Indexing of Rowptr() and Colind().
= 0: Zero-based (C style) indexing: Starting index is 0.
= 1: One-based (Fortran style) indexing: Starting index is 1.
(default: Assumes 1 if Rowptr(0) = 1, 0 otherwise) |
- Example Program
- See example of ZHsrIc0.
|