Solve Linear Systems After Cholesky Factorization#

POTRS (POsitive definite TRiangular Solve) function solves a system of linear equations

\[A * X = B\]

by overwriting B with the solution X.

cuSolverDx POTRS device functions (see Execution Methods):

__device__ void execute(const data_type* A, data_type* B);
// with runtime leading dimensions
__device__ void execute(const data_type* A, const unsigned int lda,
                              data_type* B);
__device__ void execute(const data_type* A,
                              data_type* B, const unsigned int ldb);
__device__ void execute(const data_type* A, const unsigned int lda,
                              data_type* B, const unsigned int ldb);

A is a batched M x M Hermitian matrix (with leading dimension lda >= M), only the lower or upper part is meaningful. The input FillMode operator indicates which part of the matrix A is used.

On entry, A contains a Cholesky factorization. For lower fill mode, the triangular factor L is contained in the lower triangle of the matrix. For upper fill mode, the triangular factor U is contained in the upper triangle of the matrix.

B is a batched right-hand side matrix, each batch of size M x K. The operation is in-place, i.e. matrix X overwrites matrix B with the same leading dimension ldb.

The functions support:

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

  2. A being in lower or upper fill mode, see FillMode operator.