potrf2#

Functions

void spotrf2(
    const char*          uplo,
    const INT            n,
          f32*  restrict A,
    const INT            lda,
          INT*           info
);
void spotrf2(const char *uplo, const INT n, f32 *restrict A, const INT lda, INT *info)#

SPOTRF2 computes the Cholesky factorization of a real symmetric positive definite matrix A using the recursive algorithm.

The factorization has the form A = U**T * U, if UPLO = ‘U’, or A = L * L**T, if UPLO = ‘L’, where U is an upper triangular matrix and L is lower triangular.

This is the recursive version of the algorithm. It divides the matrix into four submatrices:

   [  A11 | A12  ]  where A11 is n1 by n1 and A22 is n2 by n2
A = [ –—|–— ] with n1 = n/2 [ A21 | A22 ] n2 = n-n1

The subroutine calls itself to factor A11. Update and scale A21 or A12, update A22 then calls itself to factor A22.

Parameters

in
uplo

Specifies whether the upper or lower triangular part of the symmetric matrix A is stored. = ‘U’: Upper triangle of A is stored = ‘L’: Lower triangle of A is stored

in
n

The order of the matrix A. n >= 0.

inout
A

Double precision array, dimension (lda, n). On entry, the symmetric matrix A. On exit, if info = 0, the factor U or L from the Cholesky factorization A = U**T*U or A = L*L**T.

in
lda

The leading dimension of the array A. lda >= max(1, n).

out
info

  • = 0: successful exit

  • < 0: if info = -k, the k-th argument had an illegal value

  • > 0: if info = k, the leading principal minor of order k is not positive, and the factorization could not be completed.

Functions

void dpotrf2(
    const char*          uplo,
    const INT            n,
          f64*  restrict A,
    const INT            lda,
          INT*           info
);
void dpotrf2(const char *uplo, const INT n, f64 *restrict A, const INT lda, INT *info)#

DPOTRF2 computes the Cholesky factorization of a real symmetric positive definite matrix A using the recursive algorithm.

The factorization has the form A = U**T * U, if UPLO = ‘U’, or A = L * L**T, if UPLO = ‘L’, where U is an upper triangular matrix and L is lower triangular.

This is the recursive version of the algorithm. It divides the matrix into four submatrices:

   [  A11 | A12  ]  where A11 is n1 by n1 and A22 is n2 by n2
A = [ –&#8212;|–&#8212; ] with n1 = n/2 [ A21 | A22 ] n2 = n-n1

The subroutine calls itself to factor A11. Update and scale A21 or A12, update A22 then calls itself to factor A22.

Parameters

in
uplo

Specifies whether the upper or lower triangular part of the symmetric matrix A is stored. = ‘U’: Upper triangle of A is stored = ‘L’: Lower triangle of A is stored

in
n

The order of the matrix A. n >= 0.

inout
A

Double precision array, dimension (lda, n). On entry, the symmetric matrix A. On exit, if info = 0, the factor U or L from the Cholesky factorization A = U**T*U or A = L*L**T.

in
lda

The leading dimension of the array A. lda >= max(1, n).

out
info

  • = 0: successful exit

  • < 0: if info = -k, the k-th argument had an illegal value

  • > 0: if info = k, the leading principal minor of order k is not positive, and the factorization could not be completed.

Functions

void cpotrf2(
    const char*          uplo,
    const INT            n,
          c64*  restrict A,
    const INT            lda,
          INT*           info
);
void cpotrf2(const char *uplo, const INT n, c64 *restrict A, const INT lda, INT *info)#

CPOTRF2 computes the Cholesky factorization of a Hermitian positive definite matrix A using the recursive algorithm.

The factorization has the form A = U**H * U, if UPLO = ‘U’, or A = L * L**H, if UPLO = ‘L’, where U is an upper triangular matrix and L is lower triangular.

This is the recursive version of the algorithm. It divides the matrix into four submatrices:

   [  A11 | A12  ]  where A11 is n1 by n1 and A22 is n2 by n2
A = [ –&#8212;|–&#8212; ] with n1 = n/2 [ A21 | A22 ] n2 = n-n1

The subroutine calls itself to factor A11. Update and scale A21 or A12, update A22 then calls itself to factor A22.

Parameters

in
uplo

Specifies whether the upper or lower triangular part of the Hermitian matrix A is stored. = ‘U’: Upper triangle of A is stored = ‘L’: Lower triangle of A is stored

in
n

The order of the matrix A. n >= 0.

inout
A

Single complex array, dimension (lda, n). On entry, the Hermitian matrix A. On exit, if info = 0, the factor U or L from the Cholesky factorization A = U**H*U or A = L*L**H.

in
lda

The leading dimension of the array A. lda >= max(1, n).

out
info

  • = 0: successful exit

  • < 0: if info = -k, the k-th argument had an illegal value

  • > 0: if info = k, the leading principal minor of order k is not positive, and the factorization could not be completed.

Functions

void zpotrf2(
    const char*          uplo,
    const INT            n,
          c128* restrict A,
    const INT            lda,
          INT*           info
);
void zpotrf2(const char *uplo, const INT n, c128 *restrict A, const INT lda, INT *info)#

ZPOTRF2 computes the Cholesky factorization of a Hermitian positive definite matrix A using the recursive algorithm.

The factorization has the form A = U**H * U, if UPLO = ‘U’, or A = L * L**H, if UPLO = ‘L’, where U is an upper triangular matrix and L is lower triangular.

This is the recursive version of the algorithm. It divides the matrix into four submatrices:

   [  A11 | A12  ]  where A11 is n1 by n1 and A22 is n2 by n2
A = [ –&#8212;|–&#8212; ] with n1 = n/2 [ A21 | A22 ] n2 = n-n1

The subroutine calls itself to factor A11. Update and scale A21 or A12, update A22 then calls itself to factor A22.

Parameters

in
uplo

Specifies whether the upper or lower triangular part of the Hermitian matrix A is stored. = ‘U’: Upper triangle of A is stored = ‘L’: Lower triangle of A is stored

in
n

The order of the matrix A. n >= 0.

inout
A

Double complex array, dimension (lda, n). On entry, the Hermitian matrix A. On exit, if info = 0, the factor U or L from the Cholesky factorization A = U**H*U or A = L*L**H.

in
lda

The leading dimension of the array A. lda >= max(1, n).

out
info

  • = 0: successful exit

  • < 0: if info = -k, the k-th argument had an illegal value

  • > 0: if info = k, the leading principal minor of order k is not positive, and the factorization could not be completed.