Developer Reference for Intel® oneAPI Math Kernel Library for C

ID 766684
Date 11/07/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

mkl_?potrf_compact

Computes the Cholesky factorization of a set of symmetric (Hermitian), positive-definite matrices, stored in Compact format (see Compact Format for details).

Syntax

void mkl_spotrf_compact (MKL_LAYOUT layout, MKL_UPLO uplo, MKL_INT n, float * ap, MKL_INT ldap, MKL_INT * info, MKL_COMPACT_PACK format, MKL_INT nm);

void mkl_cpotrf_compact (MKL_LAYOUT layout, MKL_UPLO uplo, MKL_INT n, float * ap, MKL_INT ldap, MKL_INT * info, MKL_COMPACT_PACK format, MKL_INT nm);

void mkl_dpotrf_compact (MKL_LAYOUT layout, MKL_UPLO uplo, MKL_INT n, double * ap, MKL_INT ldap, MKL_INT * info, MKL_COMPACT_PACK format, MKL_INT nm);

void mkl_zpotrf_compact (MKL_LAYOUT layout, MKL_UPLO uplo, MKL_INT n, double * ap, MKL_INT ldap, MKL_INT * info, MKL_COMPACT_PACK format, MKL_INT nm);

Description

The routine forms the Cholesky factorization of a set of symmetric, positive definite (or, for complex data, Hermitian, positive-definite), n x n matrices Ac, stored in Compact format, as:

  • Ac = Uc T*Uc (for real data), Ac = Uc H*Uc (for complex data), if uplo = MKL_UPPER

  • Ac = Lc*Lc T (for real data), Ac = Lc*Lc H (for complex data), if uplo = MKL_LOWER

where Lc is a lower triangular matrix, and Uc is upper triangular. The factorization (output) data will also be stored in Compact format.

Before calling this routine, call mkl_?gepack_compact to store the matrices in the Compact format.

NOTE:

Compact routines have some limitations; see Numerical Limitations.

Input Parameters

layout

Specifies whether two-dimensional array storage is row-major (MKL_ROW_MAJOR) or column-major (MKL_COL_MAJOR).

uplo

Must be MKL_UPPER or MKL_LOWER

Indicates whether the upper or lower triangular part of Ac has been stored and will be factored.

If uplo = MKL_UPPER, the upper triangular part of Ac is stored, and the strictly lower triangular part of Ac is not referenced.

If uplo = MKL_LOWER, the lower triangular part of Ac is stored, and the strictly upper triangular part of Ac is not referenced.

n
The order of Ac; n >= 0.
ldap
Column stride (column-major layout) or row stride (row-major layout) of Ac.
ap
Points to the beginning of the nm Ac matrices. On entry, ap contains either the upper or the lower triangular part of Ac (see uplo).
format

Specifies the format of the compact matrices. See Compact Format or mkl_get_format_compact for details.

nm

Total number of matrices stored in Compact format; nm >= 0.

Application Notes:

Before calling this routine,mkl_?gepack_compact must be called. After calling this routine, mkl_?geunpack_compact should be called, unless another compact routine will be called for the Compact format matrices.

The total number of floating-point operations is approximately nm* (1/3) n 3 for real flavors and nm* (4/3) n 3 for complex flavors.

Output Parameters

ap
The upper or lower triangular part of Ac, stored in Compact format in ap, is overwritten by its Cholesky factor Uc or Lc (as specified by uplo). ap now points to the beginning of this set of factors, stored in Compact format.
info
The parameter is not currently used in this routine. It is reserved for the future use.