# dpstf2.f man page

dpstf2.f —

## Synopsis

### Functions/Subroutines

subroutinedpstf2(UPLO, N, A, LDA, PIV, RANK, TOL, WORK, INFO)DPSTF2computes the Cholesky factorization with complete pivoting of a real symmetric or complex Hermitian positive semi-definite matrix.

## Function/Subroutine Documentation

### subroutine dpstf2 (characterUPLO, integerN, double precision, dimension( lda, * )A, integerLDA, integer, dimension( n )PIV, integerRANK, double precisionTOL, double precision, dimension( 2*n )WORK, integerINFO)

**DPSTF2** computes the Cholesky factorization with complete pivoting of a real symmetric or complex Hermitian positive semi-definite matrix.

**Purpose:**

```
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:**

*UPLO*

```
UPLO is CHARACTER*1
Specifies whether the upper or lower triangular part of the
symmetric matrix A is stored.
= 'U': Upper triangular
= 'L': Lower triangular
```

*N*

```
N is INTEGER
The order of the matrix A. N >= 0.
```

*A*

```
A is DOUBLE PRECISION array, dimension (LDA,N)
On entry, the symmetric matrix A. If UPLO = 'U', the leading
n by n upper triangular part of A contains the upper
triangular part of the matrix A, and the strictly lower
triangular part of A is not referenced. If UPLO = 'L', the
leading n by n lower triangular part of A contains the lower
triangular part of the matrix A, and the strictly upper
triangular part of A is not referenced.
On exit, if INFO = 0, the factor U or L from the Cholesky
factorization as above.
```

*PIV*

```
PIV is INTEGER array, dimension (N)
PIV is such that the nonzero entries are P( PIV(K), K ) = 1.
```

*RANK*

```
RANK is INTEGER
The rank of A given by the number of steps the algorithm
completed.
```

*TOL*

```
TOL is DOUBLE PRECISION
User defined tolerance. If TOL < 0, then N*U*MAX( A( K,K ) )
will be used. The algorithm terminates at the (K-1)st step
if the pivot <= TOL.
```

*LDA*

```
LDA is INTEGER
The leading dimension of the array A. LDA >= max(1,N).
```

*WORK*

```
WORK is DOUBLE PRECISION array, dimension (2*N)
Work space.
```

*INFO*

```
INFO is INTEGER
< 0: If INFO = -K, the K-th argument had an illegal value,
= 0: algorithm completed successfully, and
> 0: the matrix A is either rank deficient with computed rank
as returned in RANK, or is indefinite. See Section 7 of
LAPACK Working Note #161 for further information.
```

**Author:**

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

**Date:**

September 2012

Definition at line 141 of file dpstf2.f.

## Author

Generated automatically by Doxygen for LAPACK from the source code.

## Referenced By

dpstf2(3) is an alias of dpstf2.f(3).