pstf2#

Functions

void spstf2(
    const char*          uplo,
    const INT            n,
          f32*  restrict A,
    const INT            lda,
          INT*  restrict piv,
          INT*           rank,
    const f32            tol,
          f32*  restrict work,
          INT*           info
);
void spstf2(const char *uplo, const INT n, f32 *restrict A, const INT lda, INT *restrict piv, INT *rank, const f32 tol, f32 *restrict work, INT *info)#

SPSTF2 computes the Cholesky factorization with complete pivoting of a real symmetric positive semidefinite matrix A.

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

This algorithm does not attempt to check that A is positive semidefinite. This version of the algorithm calls level 2 BLAS.

Parameters

in
uplo

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

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.

in
lda

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

out
piv

Integer array, dimension (n). PIV is such that the nonzero entries are P(PIV(k), k) = 1. 0-based indexing.

out
rank

The rank of A given by the number of steps the algorithm completed.

in
tol

User defined tolerance. If tol < 0, then n*eps*max(A(k,k)) will be used. The algorithm terminates at the (k-1)st step if the pivot <= tol.

out
work

Double precision array, dimension (2*n). Work space.

out
info

  • = 0: successful exit

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

  • > 0: the matrix A is either rank deficient with computed rank as returned in rank, or is not positive semidefinite.

Functions

void dpstf2(
    const char*          uplo,
    const INT            n,
          f64*  restrict A,
    const INT            lda,
          INT*  restrict piv,
          INT*           rank,
    const f64            tol,
          f64*  restrict work,
          INT*           info
);
void dpstf2(const char *uplo, const INT n, f64 *restrict A, const INT lda, INT *restrict piv, INT *rank, const f64 tol, f64 *restrict work, INT *info)#

DPSTF2 computes the Cholesky factorization with complete pivoting of a real symmetric positive semidefinite matrix A.

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

This algorithm does not attempt to check that A is positive semidefinite. This version of the algorithm calls level 2 BLAS.

Parameters

in
uplo

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

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.

in
lda

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

out
piv

Integer array, dimension (n). PIV is such that the nonzero entries are P(PIV(k), k) = 1. 0-based indexing.

out
rank

The rank of A given by the number of steps the algorithm completed.

in
tol

User defined tolerance. If tol < 0, then n*eps*max(A(k,k)) will be used. The algorithm terminates at the (k-1)st step if the pivot <= tol.

out
work

Double precision array, dimension (2*n). Work space.

out
info

  • = 0: successful exit

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

  • > 0: the matrix A is either rank deficient with computed rank as returned in rank, or is not positive semidefinite.

Functions

void cpstf2(
    const char*          uplo,
    const INT            n,
          c64*  restrict A,
    const INT            lda,
          INT*  restrict piv,
          INT*           rank,
    const f32            tol,
          f32*  restrict work,
          INT*           info
);
void cpstf2(const char *uplo, const INT n, c64 *restrict A, const INT lda, INT *restrict piv, INT *rank, const f32 tol, f32 *restrict work, INT *info)#

CPSTF2 computes the Cholesky factorization with complete pivoting of a complex Hermitian positive semidefinite matrix A.

The factorization has the form P**T * A * P = U**H * U , if UPLO = ‘U’, P**T * A * P = L * L**H, if UPLO = ‘L’, where U is an upper triangular matrix and L is lower triangular, and P is stored as vector PIV.

This algorithm does not attempt to check that A is positive semidefinite. This version of the algorithm calls level 2 BLAS.

Parameters

in
uplo

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

in
n

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

inout
A

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

in
lda

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

out
piv

Integer array, dimension (n). PIV is such that the nonzero entries are P(PIV(k), k) = 1. 0-based indexing.

out
rank

The rank of A given by the number of steps the algorithm completed.

in
tol

User defined tolerance. If tol < 0, then n*eps*max(A(k,k)) will be used. The algorithm terminates at the (k-1)st step if the pivot <= tol.

out
work

Single precision array, dimension (2*n). Work space.

out
info

  • = 0: successful exit

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

  • > 0: the matrix A is either rank deficient with computed rank as returned in rank, or is not positive semidefinite.

Functions

void zpstf2(
    const char*          uplo,
    const INT            n,
          c128* restrict A,
    const INT            lda,
          INT*  restrict piv,
          INT*           rank,
    const f64            tol,
          f64*  restrict work,
          INT*           info
);
void zpstf2(const char *uplo, const INT n, c128 *restrict A, const INT lda, INT *restrict piv, INT *rank, const f64 tol, f64 *restrict work, INT *info)#

ZPSTF2 computes the Cholesky factorization with complete pivoting of a complex Hermitian positive semidefinite matrix A.

The factorization has the form P**T * A * P = U**H * U , if UPLO = ‘U’, P**T * A * P = L * L**H, if UPLO = ‘L’, where U is an upper triangular matrix and L is lower triangular, and P is stored as vector PIV.

This algorithm does not attempt to check that A is positive semidefinite. This version of the algorithm calls level 2 BLAS.

Parameters

in
uplo

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

in
n

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

inout
A

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

in
lda

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

out
piv

Integer array, dimension (n). PIV is such that the nonzero entries are P(PIV(k), k) = 1. 0-based indexing.

out
rank

The rank of A given by the number of steps the algorithm completed.

in
tol

User defined tolerance. If tol < 0, then n*eps*max(A(k,k)) will be used. The algorithm terminates at the (k-1)st step if the pivot <= tol.

out
work

Double precision array, dimension (2*n). Work space.

out
info

  • = 0: successful exit

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

  • > 0: the matrix A is either rank deficient with computed rank as returned in rank, or is not positive semidefinite.