Cholesky Factorization#

POTRF (POsitive definite TRiangular Factorization) function computes batched Cholesky factorization of a Hermitian positive-definite matrix:

\[ \begin{align}\begin{aligned}A = L * L^H,\\A = U^H * U\end{aligned}\end{align} \]

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.

cuSolverDx POTRF device functions (see Execution Methods):

__device__ void execute(data_type* A, status_type* info);
// with the runtime lda
__device__ void execute(data_type* A, const unsigned int lda, status_type* info);

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.

If Cholesky factorization failed for any batches, i.e. some leading minor of A is not positive definite, or equivalently some diagonal elements of L or U is not a real number, the corresponding output status parameter, info[batch_id] would indicate smallest leading minor of A which is not positive definite.

The function supports A being either column- or row-major memory layout, see Arrangement operator.