Cholesky Factorization and Solve#

POSV (POsitive definite linear SolVe) function solves the system

\[A * X = B\]

by factoring A with Cholesky factorization and overwriting B with the solution X. The function POSV is equivalent to executing a POTRS immediately followed by POTRF.

cuSolverDx POSV device functions (see Execution Methods):

__device__ void execute(data_type* A, data_type* B, status_type* info);
// with runtime lda and ldb
__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 x M Hermitian matrix (with leading dimension lda >= 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 x NRHS right hand side matrix, the leading dimension of B is ldb >= rnhs if B is in column-major layout, or ldb >= M if B is row-major.

The output matrix X overwrites B with the same arrangement and leading dimension ldb.

The function supports A and B either being the same or different column- or row-major layouts, see Arrangement operator.