Cholesky Factorization and Solve#
POSV (POsitive definite linear SolVe) function solves the system
by factoring A with Cholesky factorization and overwriting B with the solution X. The function POSV is equivalent to executing a POTRF immediately followed by POTRS.
cuSolverDx POSV device functions (see Execution Methods):
__device__ void execute(data_type* A, data_type* B, status_type* info);
// with runtime leading dimensions
__device__ void execute(data_type* A, const unsigned int lda,
data_type* B, status_type* info);
__device__ void execute(data_type* A,
data_type* B, const unsigned int ldb, status_type* info);
__device__ void execute(data_type* A, const unsigned int lda,
data_type* B, const unsigned int ldb, status_type* info);
A is a batched \(M \times M\) Hermitian matrix (with leading dimension \(\mathrm{lda} \geq M\)), only lower or upper part is meaningful. The input FillMode operator indicates which part of the matrix A is used.
For lower fill mode, only the lower triangular part of A is processed, and replaced by the lower triangular Cholesky factor L. The upper part of the matrix is untouched.
For upper fill mode, only upper triangular part of A is processed, and replaced by upper triangular Cholesky factor U. The lower part of the matrix is untouched.
B is a batched \(M \times K\) right-hand side matrix, the leading dimension of B is \(\mathrm{ldb} \geq M\) if B is in column-major layout, or \(\mathrm{ldb} \geq K\) if B is row-major.
The output matrix X overwrites B with the same arrangement and leading dimension ldb.
The functions support:
AandBeither being the same or different column- or row-major layouts, see Arrangement operator, andAbeing inlowerorupperfill mode, see FillMode operator.